Επιστροφή στο Forum : Πληροφορίες για Rotary Encoder
Για σας, θελω να συνδεσω εναν rotary encoder που έχει δύο κανάλια με εναν ARM STM32 κατευθείαν στον timer του αλλά έχω μπερδευτεί.
Τα δυο πινς που έχει ο encoder λογικά είναι το ένα η συχνότητα περιστροφής και το δεύτερο η κατεύθυνση. Αυτό που δεν καταλαβαίνω είναι πώς γίνεται ο timer να ξέρει προς ποιά κατευθηνση περιστρέφεται.
Εχει ασχοληθεί κανέις;
http://stm32f4-discovery.net/2014/08/library-26-rotary-encoder-stm32f4/
http://stm32f4-discovery.net/2014/08/library-26-rotary-encoder-stm32f4/
απο ό,τι κατάλαβα δεν χρησιμοποιεί τον timer, οι STM32 έχουν την δυνατότητα να ρυθμίσεις τον timer σαν input capture και μετράει κατευθείαν τις περιστροφές χωρίς interrupt κλπ, γιατί αν έχεις έναν κινητήρα με 14000 στροφές τότε με interupts ζήτω που καήκαμε.
Ναι εχει λειτουργια Encoder.Δεν ξερω εαν το εχουν ολες οι σειρες.
Ποιος Encoder,ποια mcu;
έναν κινητήρα με 14000 στροφές τότε με interupts ζήτω που καήκαμε.
Και;Eιναι γελοια συχνοτητα τα 233Hz
Για σας, θελω να συνδεσω εναν rotary encoder που έχει δύο κανάλια με εναν ARM STM32 κατευθείαν στον timer του αλλά έχω μπερδευτεί.
Τα δυο πινς που έχει ο encoder λογικά είναι το ένα η συχνότητα περιστροφής και το δεύτερο η κατεύθυνση. Αυτό που δεν καταλαβαίνω είναι πώς γίνεται ο timer να ξέρει προς ποιά κατευθηνση περιστρέφεται.
Εχει ασχοληθεί κανέις;
τα κανάλια είναι Α και Β (όχι ταχύτητα και κατεύθυνση).
Οποιοδήποτε κανάλι μόνο του, σου κάνει για έλεγχο ταχύτητας.
Για έλεγχο θέσης με το 1/4 της ακρίβειας σου κάνει πάλι το ένα κανάλι.
Για έλεγχο θέσης με πλήρη ανάλυση θέλεις και τα δυο κανάλια. Για να βρεις κατεύθυνση θέλεις πάλι και τα δυο κανάλια.
If A leads B, for example, the disk is rotating in a clockwise direction. If B leads A, then the disk is rotating in a counter-clockwise direction.
http://www.ni.com/tutorial/7109/en/
Δεν ξερω τί κάνει ακριβώς ο STM32 αλλά έχει για μένα κακό manual γενικώς και ειδικώς στο δικό μου τεστ αυξάνεται ή μειώνεται κατα δύο όλη την ώρα και ότι και αν έχω αλλάξει στις ρυθμίσεις (ΗΑL) δεν λέει να διορθωθεί και κοντεύουν να μου πέσουν τα μαλλιά.
Ειμαι εκτος και τυχαινει αυτες τις μερες παιζω με τον F4 και ενα encoder του Στεφανου.Απο αυριο μπορω να βοηθησω.
Ολοι οι μΕ που βασιζονται σε ARM εχουν 'δυκολο' manual...γιατι πολυ απλα μονο το manual της MCU ειναι 700 σελιδες και απο εκει πρεπει να ξεκινησουμε..
Quadrature λέγεται το περιφερειακό για έλεγχο κίνησης μοτέρ.
Έχει κάποια αυτοματοποιημένα interrupt , προγραμματιζόμενο φίλτρο και μπορείς να ξέρεις στροφές , ταχύτητα κατεύθυνση κτλ όχι ότι δεν το κάνεις και μόνος σου με counter αλλά πρέπει να γράψεις δικές σου ρουτινες και θα καταναλώσεις κυκλους μηχανής
Φυσικα και δεν υπαρχει Quadrature περιφερειακο,οπως δεν υπαρχει περιφερειακο PWM.
Ειναι λειτουργιες των χρονιστων.Αναλογα με το ελεγχο/μετρηση που θες να κανεις ... μπορει η CPU να είναι αποδεσμευμένη ή να χρειαζεται για υπολογισμους.
67053
Οι dspic έχουν τέτοιο περιφερειακό και το έχω δουλέψει , για τους stm δεν ξέρω
για τον timer εχω τις εξής ρυθμίσεις :
htim3.Instance = TIM3;
htim3.Init.Prescaler = 4;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 0xFFFF;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4;
prescaler ειναι 4, οποτε απο 32 MHZ εχω 8 ΜΗΖ το ClockDivision τί είναι; Δεν βρίσκω εξήγηση στο manual του HAL. ( htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4;)
Ποιον μΕ εχεις ή για ποια πλατφορμα μιλαμε;
https://petoknm.wordpress.com/2015/01/05/rotary-encoder-and-stm32/
Nucleo L152RE
Αυτον τον κώδικα χρησιμοποίησα αλλά δείχνει να είναι πολύ γρήγορος οπότε λαμβάνει τον θόρυβο σαν περιστροφή, με τις δικές μου ρυθμίσεις δείχνει να δουλεύει καλύτερα απλά δεν μπορώ να υπολογίσω επακριβώς πόσο συχνότητα εχω ορίσει.
Εβγαλες ακρη;
Ναι, κατεβασα την συχνοτητα του τιμερ και λειτουργεί, τώρα δοκιμάζω και με ενα task 10 ms να διαβαζω τα πινς και φαινεται να δουλευει κι αυτο επιφανειακα.
Η συχνοτητα του Τimer εφταιγε ή debounce και απλα λυθηκε μειωνοντας τη συχνοτητα;
Η συχνοτητα του Τimer εφταιγε ή debounce και απλα λυθηκε μειωνοντας τη συχνοτητα;
η συχνοτητα μαλλον, debouncing αλλαξα αλλά μάλλον μικρές διακυμάνσεις επηρέαζαν τον μετρητή, τα βαθιά αίτια δύσκολα να τα βρώ γιατί θέλουν ανάλυση εις βάθος.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.