Πίνακας περιεχομένων:
Βίντεο: Rotary Encoder - Κατανοήστε και χρησιμοποιήστε το (Arduino/άλλο ΜController): 3 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Ένας περιστροφικός κωδικοποιητής είναι μια ηλεκτρομηχανική συσκευή που μετατρέπει την περιστροφική κίνηση σε ψηφιακές ή αναλογικές πληροφορίες. Μπορεί να στρίψει δεξιόστροφα ή αριστερόστροφα. Υπάρχουν δύο τύποι περιστροφικών κωδικοποιητών: Ο απόλυτος και ο σχετικός (σταδιακός) κωδικοποιητής.
Ενώ ένας απόλυτος κωδικοποιητής εξάγει μια τιμή ανάλογη της τρέχουσας γωνίας άξονα, ένας πρόσθετος κωδικοποιητής εξάγει το βήμα του άξονα και την κατεύθυνσή του. (Σε αυτή την περίπτωση έχουμε έναν αυξητικό κωδικοποιητή)
Οι περιστροφικοί κωδικοποιητές γίνονται πιο δημοφιλείς επειδή μπορείτε να χρησιμοποιήσετε δύο λειτουργίες σε μία ηλεκτρική μονάδα: Ένας απλός διακόπτης για την επιβεβαίωση των λειτουργιών και ο περιστροφικός κωδικοποιητής για πλοήγηση, π.χ. μέσω ενός μενού.
Ένας πρόσθετος περιστροφικός κωδικοποιητής παράγει δύο σήματα εξόδου ενώ ο άξονας περιστρέφεται. Ανάλογα με την κατεύθυνση, το ένα σήμα οδηγεί το άλλο. (Δες παρακάτω)
Βήμα 1: Κατανόηση των δεδομένων εξόδου
Όπως μπορείτε να δείτε όταν ο άξονας του κωδικοποιητή αρχίζει να περιστρέφεται δεξιόστροφα, η έξοδος A πέφτει πρώτα στο LOW και η έξοδος B την ακολουθεί. Σε αντίθετη φορά των δεικτών του ρολογιού, η λειτουργία γυρίζει αντίθετα.
Τώρα πρέπει απλώς να το εφαρμόσουμε στον μController (χρησιμοποίησα Arduino Nano).
Βήμα 2: Δημιουργήστε το κύκλωμα
Όπως περιέγραψα πριν, οι έξοδοι δημιουργούν ένα υψηλό και ένα χαμηλό πλευρό. Για να έχουμε ένα καθαρό HIGH στο pin δεδομένων A και B του μController πρέπει να προσθέσουμε αντιστάσεις Pull-Up. Το κοινό Pin C πηγαίνει κατευθείαν στο έδαφος για το LOW side.
Για να λάβετε πληροφορίες σχετικά με τον εσωτερικό διακόπτη (κουμπί) θα χρησιμοποιήσουμε τις άλλες δύο ακίδες. Το ένα από αυτά πηγαίνει στο VCC και το άλλο σε ένα pin δεδομένων του μController. Πρέπει επίσης να προσθέσουμε ένα Pull-Down Resistor στο pin δεδομένων για να έχουμε ένα καθαρό LOW.
Είναι επίσης δυνατό να χρησιμοποιήσετε εσωτερικές αντιστάσεις Pull-Up και Pull-Down του μC Controller σας!
Στην περίπτωσή μου, το pinout μοιάζει με:
- +3, 3V => +3, 3V (Arduino) (επίσης +5V δυνατό)
- GND => GND (Arduino)
- A => Pin10
-
Β =>
Καρφίτσα
11
- C => GND
-
ΝΔ =>
Καρφίτσα
12
Βήμα 3: Γράφοντας τον Κώδικα
int pinA = 10; // εσωτερικός διακόπτης A int pinB = 11; // εσωτερικός διακόπτης B int pinSW = 12; // διακόπτης (πατημένος κωδικοποιητής) int encoderPosCount = 0; // ξεκινά από μηδέν, αλλάξτε αν θέλετε
int positionval?
bool switchval? int mrotateLast; int mrotate?
void setup () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); καθυστέρηση (50)? }
void loop () {readencoder (); if (readwitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// το κουμπί περιστρέφεται εάν (digitalRead (pinB)! = mrotate) {// switch A άλλαξε πρώτα -> περιστρέφοντας δεξιόστροφα κωδικοποιητήPosCount ++; Serial.println ("περιστρεφόμενο δεξιόστροφα"); } else {// switch B άλλαξε πρώτα-> περιστρέφοντας αριστερόστροφα τον κωδικοποιητήPosCount--; Serial.println ("περιστρεφόμενο αριστερόστροφα"); }
Serial.print ("Θέση κωδικοποιητή:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; επιστροφή κωδικοποιητήPosCount; } bool readwitch () {
εάν πατηθεί ο διακόπτης (digitalRead (pinSW)! = 0) {//
ενώ (digitalRead (pinSW)! = 0) {} // ο διακόπτης είναι επί του παρόντος πατημένος switchval = 1; } else {switchval = 0;} // switch είναι μη συμπιεσμένο switchval επιστροφής. }
Τώρα μπορείτε να γυρίσετε τον κωδικοποιητή και η μεταβλητή encoderPosCount θα μετρήσει αν περιστρέψετε δεξιόστροφα και αντίστροφα αν περιστρέψετε δεξιόστροφα.
Αυτό είναι! Απλά και χρήσιμα.
Μη διστάσετε να αλλάξετε και να εκτελέσετε τον κώδικα. Μπορείτε να το εφαρμόσετε στο έργο σας.
Θα ανεβάσω επίσης ένα έργο LED όπου χρησιμοποίησα τον κωδικοποιητή για να ρυθμίσω τη φωτεινότητα των LED μου.
Συνιστάται:
Χρονόμετρο με Arduino και Rotary Encoder: 5 βήματα
Χρονόμετρο με Arduino και Rotary Encoder: Το χρονόμετρο είναι ένα εργαλείο που χρησιμοποιείται συχνά τόσο σε βιομηχανικές όσο και σε οικιακές δραστηριότητες. Αυτή η συναρμολόγηση είναι φθηνή και εύκολη στην κατασκευή. Είναι επίσης πολύ ευέλικτη, η δυνατότητα φόρτωσης ενός προγράμματος που επιλέγεται ανάλογα με τις ανάγκες. Υπάρχουν πολλά προγράμματα γραμμένα από εμένα, για το Ardui
(Ascensor) Μοντέλο ασανσέρ χρησιμοποιώντας Arduino, App Inventor και άλλο δωρεάν λογισμικό: 7 βήματα
(Ascensor) Μοντέλο ανελκυστήρα χρησιμοποιώντας Arduino, App Inventor και άλλο ελεύθερο λογισμικό: ESPConstrucción, paso a paso, de un ascensor a escala usando arduino (como controlador del motor y entradas y salidas for bluetooth), app inventor (para disño de de aplicación como panel de control del ascensor) y freeCAD y LibreCAD για διαβήτη. Abajo
Χρησιμοποιήστε την Cortana και το Arduino για να ελέγξετε LGB Reds ή Ledstrips με τη φωνή σας!: 4 βήματα (με εικόνες)
Χρησιμοποιήστε το Cortana και το Arduino για τον έλεγχο των RGB Leds ή των Ledstrips με τη φωνή σας! Αυτό γίνεται από την εφαρμογή CoRGB, η οποία διατίθεται δωρεάν στο κατάστημα εφαρμογών των Windows. Αυτή η εφαρμογή είναι μέρος του έργου μου CortanaRoom. Όταν τελειώσεις με το μυαλό
Χρησιμοποιήστε ξανά μια φωτογραφική μηχανή μιας χρήσης και σώστε τον πλανήτη! και εξοικονομήστε λίγα χρήματα: 4 βήματα
Χρησιμοποιήστε ξανά μια φωτογραφική μηχανή μιας χρήσης και σώστε τον πλανήτη! και Save a Few Quid: Πρόσφατα πήγα στο τοπικό μου κατάστημα φωτογραφιών (jessops) για να πάρω μερικές μεταχειρισμένες κάμερες μιας χρήσης καθώς είμαι σίγουρος ότι γνωρίζετε ότι κάνουν μεγάλη διασκέδαση για τους ανθρώπους που σοκάρουν. Απλά ρωτήστε και τα δίνουν. Σκέφτηκα επίσης, ε, αυτές οι εταιρείες παίρνουν τις κάμερες πίσω, βάζουν
Συνδέστε ένα Ipod ή άλλο Mp3 Player σε κανονικά οικιακά ηχεία χωρίς ακριβό και ογκώδη ενισχυτή!: 4 βήματα
Συνδέστε ένα Ipod ή άλλο Mp3 Player σε κανονικά οικιακά ηχεία χωρίς ακριβό και ογκώδη ενισχυτή !: Έχετε πολλά επιπλέον στερεοφωνικά ηχεία, που είτε συνοδεύονταν από χαλαρά στερεοφωνικά ή απλά τα είχατε χωρίς προφανή λόγο; Σε αυτό το Instructable θα σας δείξω πώς μπορείτε να τα συνδέσετε σε οποιοδήποτε πρόγραμμα αναπαραγωγής Mp3 ή σε οποιαδήποτε συσκευή με θύρα ήχου