Πίνακας περιεχομένων:
- Βήμα 1: Ροή παλμών περιστροφικού κωδικοποιητή
- Βήμα 2: Pinout του Rotary Encoder
- Βήμα 3: Σχηματικό
- Βήμα 4: Κωδικός
- Βήμα 5: Επεξήγηση
- Βήμα 6: Έξοδος
Βίντεο: Φροντιστήριο περιστροφικού κωδικοποιητή με Arduino: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Ο περιστροφικός κωδικοποιητής είναι ένα ηλεκτρονικό στοιχείο ικανό να παρακολουθεί την κίνηση και τη θέση κατά την περιστροφή. Ο περιστροφικός κωδικοποιητής χρησιμοποιεί οπτικούς αισθητήρες που μπορούν να παράγουν παλμούς όταν περιστρέφεται ο περιστροφικός κωδικοποιητής. Η εφαρμογή του περιστροφικού κωδικοποιητή συνήθως ως μηχανική ή ρομποτική οθόνη κίνησης μπορεί επίσης να χρησιμοποιηθεί για την επιλογή μενού στην οθόνη. Ο περιστροφικός κωδικοποιητής έχει δύο εξόδους έτσι ώστε να μπορεί να διακρίνει μεταξύ περιστροφής αρνητικής (CW) και θετικής (CCW) και διαθέτει επίσης ένα μόνο κουμπί.
Βήμα 1: Ροή παλμών περιστροφικού κωδικοποιητή
Η ροή παλμών που δημιουργείται από τον ακόλουθο περιστροφικό κωδικοποιητή είναι όπως στην παραπάνω εικόνα.
Βήμα 2: Pinout του Rotary Encoder
Εξήγηση:
- GND GND
- + + 5V
- Κουμπί SW περιστροφικού κωδικοποιητή όταν πατηθεί
- Δεδομένα DT
- CLK Δεδομένα 2
Ένας από τους ακροδέκτες DT ή CLK πρέπει να είναι συνδεδεμένος στο πόδι διακοπής του Arduino Uno ή και οι δύο DT και CLK είναι συνδεδεμένοι στον ακροδέκτη διακοπής.
Βήμα 3: Σχηματικό
- GND à GND Arduino Uno
- + à + 5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Βήμα 4: Κωδικός
Στο παρακάτω σεμινάριο, το οποίο θα χρησιμοποιηθεί ως διακοπή είναι το PIN 2 του Arduino Uno, ενώ το PIN 3 χρησιμοποιείται μόνο ως κανονική είσοδος.
#define encoder0PinA 2 #define encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; void setup () {Serial.begin (9600); pinMode (κωδικοποιητής0PinA, INPUT_PULLUP); pinMode (κωδικοποιητής0PinB, INPUT_PULLUP); pinMode (κωδικοποιητής0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, CHANGE); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (""); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } if (valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println (""); καθυστέρηση (250)? } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } else {encoder0Pos--; } valRotary = κωδικοποιητής0Pos/2.5; }
Στη γραμμή 10 του παραπάνω σκίτσου χρησιμοποιείται για να ενεργοποιηθεί η διακοπή του pin 2 Arduino Uno. Στη λειτουργία "doEncoder" υπολογίζεται από τον περιστροφικό κωδικοποιητή. Εάν η τιμή των DT και CLK (διακοπή pin του Arduino Uno) είναι η ίδια, τότε η μεταβλητή "encoder0Pos" θα αυξηθεί / προστεθεί, επιπλέον της συνθήκης αυτής, η μεταβλητή "encoder0Pos" μειώνεται.
Βήμα 5: Επεξήγηση
ValRotary value είναι η τιμή του αριθμού των βημάτων που εκτελούνται. Η τιμή ValRotary λαμβάνεται από την τιμή ανάγνωσης περιστροφικού κωδικοποιητή αισθητήρα διαιρούμενη με 2,5. Από τη δοκιμή λαμβάνεται μια τιμή 2,5, αφού ένα βήμα του περιστροφικού κωδικοποιητή μπορεί να υπερβεί το 1, οπότε διαιρέστε με 2,5 για την τιμή του σύμφωνα με το perstep και επίσης την προσθήκη της καθυστέρησης ανάγνωσης.
Ενώ βρίσκεστε στη γραμμή 19 - 25, είναι ένα πρόγραμμα για τον προσδιορισμό του περιστροφικού περιστροφικού κωδικοποιητή CW ή CCW. Η εξήγηση των γραμμών 19 - 25 είναι όταν η τρέχουσα ανάγνωση περιστροφικού κωδικοποιητή είναι μεγαλύτερη από τα προηγούμενα περιστροφικά δεδομένα που εκφράζονταν τότε ως CW. Αν η τρέχουσα ένδειξη είναι μικρότερη από την προηγούμενη ανάγνωση τότε δηλώνεται ως CCW.
Βήμα 6: Έξοδος
1 = η τιμή του κουμπιού έναρξης του περιστροφικού όταν δεν έχει πατηθεί
Συνιστάται:
Κουμπί περιστροφικού κωδικοποιητή: 6 βήματα
Κουμπί περιστροφικού κωδικοποιητή: Αυτό είναι ένα περιστροφικό τηλεχειριστήριο βασισμένο σε περιστροφικό κωδικοποιητή. Έχει τις ακόλουθες δυνατότητες. Μπαταρία που λειτουργεί με πολύ χαμηλή κατανάλωση ρεύματος όταν είναι ενεργοποιημένη Αυτόματη ενεργοποίηση όταν περιστρέφεται ο έλεγχος Αυτόματος ύπνος μετά από μια περίοδο αδράνειας Διαμόρφωση
Αντικατάσταση περιστροφικού κωδικοποιητή ISDT Q6: 4 βήματα
Αντικατάσταση περιστροφικού κωδικοποιητή ISDT Q6: Αυτό το σεμινάριο είναι για να βοηθήσει άτομα που οι κωδικοποιητές Q6 έχουν μεταβεί σε sh*t με την πάροδο του χρόνου είναι πλέον άχρηστοι. Το δικό μου άρχισε να κάνει κύλιση σε τυχαίες, ακανόνιστες κατευθύνσεις και ακόμη και μετά την ανάφλεξη των αρμών συγκόλλησης και τον καθαρισμό του κωδικοποιητή με οινόπνευμα ήταν ακόμα δυσάρεστο
Χρήση Stepper Motor ως περιστροφικού κωδικοποιητή: 9 βήματα (με εικόνες)
Χρήση Stepper Motor ως περιστροφικού κωδικοποιητή: Οι περιστροφικοί κωδικοποιητές είναι εξαιρετικοί για χρήση σε έργα μικροελεγκτών ως συσκευή εισόδου, αλλά η απόδοσή τους δεν είναι πολύ ομαλή και ικανοποιητική. Επίσης, έχοντας πολλά ανταλλακτικά βηματικά μοτέρ, αποφάσισα να τους δώσω έναν σκοπό. Αν λοιπόν έχετε λίγο βηματικό
Φροντιστήριο περιστροφικού κωδικοποιητή: 5 βήματα
Οδηγός περιστροφικού κιτ κωδικοποίησης: Περιγραφή: Αυτό το κιτ περιστροφικού κωδικοποιητή μπορεί να χρησιμοποιηθεί για την ανίχνευση της θέσης και της ταχύτητας του κινητήρα. Πρόκειται για ένα πολύ απλό κιτ που αποτελείται από έναν αισθητήρα οπτικής δέσμης (διακόπτης οπτικής λειτουργίας, φωτοτρανζίστορ) και ένα κομμάτι δίσκου με σχισμές. Μπορεί να συνδεθεί με οποιονδήποτε μικροέλεγχο
Arduino Menu σε Nokia 5110 LCD Χρήση περιστροφικού κωδικοποιητή: 6 βήματα (με εικόνες)
Arduino Menu σε Nokia 5110 LCD Χρήση περιστροφικού κωδικοποιητή: Αγαπητοί φίλοι καλώς ορίσατε σε ένα άλλο σεμινάριο! Σε αυτό το βίντεο θα μάθουμε πώς να δημιουργήσουμε το δικό μας μενού για τη δημοφιλή οθόνη Nokia 5110 LCD, προκειμένου να κάνουμε τα έργα μας πιο φιλικά προς το χρήστη και πιο ικανά. Ας ξεκινήσουμε! Αυτή είναι η προβολή