Τα ποτενσιόμετρα και οι περιστροφικοί κωδικοποιητές φαίνονται σχεδόν πανομοιότυπα με την πρώτη ματιά, αλλά λειτουργούν με διαφορετικούς τρόπους. Ανακαλύψτε πώς να χρησιμοποιήσετε και τα δύο με ένα Arduino.
Μεταξύ των ηλεκτρονικών εξαρτημάτων ελέγχου χρήστη, τα περιστροφικά πόμολα ξεχωρίζουν ως μερικά από τα πιο ικανοποιητικά στη χρήση. Μπορούν να συμπληρώσουν οθόνες αφής και άλλες συσκευές εισόδου, καθώς και να λειτουργούν καλά με κουμπιά και διακόπτες. Αλλά πώς μπορείτε να προσθέσετε ένα κουμπί στα δικά σας έργα Arduino DIY;
Έχετε δύο κύριες επιλογές: ένα ποτενσιόμετρο ή έναν περιστροφικό κωδικοποιητή. Αυτά τα στοιχεία μπορεί να φαίνονται παρόμοια, αλλά οι μέθοδοι χρήσης τους με μια συσκευή όπως μια πλακέτα μικροελεγκτή Arduino είναι πολύ διαφορετικές. Ας δούμε πώς συγκρίνονται μεταξύ τους.
Ποτενσιόμετρα vs. Περιστροφικοί κωδικοποιητές
Τα περισσότερα από τα ποτενσιόμετρα και τους περιστροφικούς κωδικοποιητές που θα συναντήσουν οι λάτρεις των DIY έχουν παρόμοια μορφή. Διαθέτουν κυβοειδή ή κυλινδρική βάση με συνδετικά πόδια και έναν στρογγυλό άξονα που στρίβει και έχει εγκοπές για ένα καπάκι για να κάθεται.
Μερικά ποτενσιόμετρα φαίνονται διαφορετικά, όπως αυτά που έχουν τη μορφή μακριών διαφανειών, όπως αυτά που βρίσκονται στα decks μίξης μουσικής. Όσον αφορά το περιστροφικό είδος, ωστόσο, με την πρώτη ματιά φαίνονται σχεδόν πανομοιότυπα με τους περιστροφικούς κωδικοποιητές, οπότε θα σας συγχωρούσαμε να πιστεύετε ότι είναι ίδιοι.
Τι είναι το ποτενσιόμετρο;
Ένα ποτενσιόμετρο είναι στην ουσία μια μεταβλητή αντίσταση. Καθώς ο άξονας περιστρέφεται, η αντίσταση μέσα στο ποτενσιόμετρο αλλάζει, επιτρέποντας στον χρήστη να αλλάξει τις ιδιότητες ενός κυκλώματος χωρίς να χρειάζεται να το ξαναχτίσει. Τα ποτενσιόμετρα μπορούν να είναι αναλογικά και ψηφιακά, αλλά τα ψηφιακά ποτενσιόμετρα μιμούνται τα αναλογικά και αυτό τα κάνει πολύ παρόμοια με τη χρήση.
Τα ποτενσιόμετρα έχουν πάντα ένα καθορισμένο σημείο έναρξης και λήξης όπου ο άξονας δεν μπορεί πλέον να περιστραφεί. Μερικά ποτενσιόμετρα έχουν μια αίσθηση ανώμαλου όταν τα γυρίζουν, αλλά πολλά είναι επίσης λεία, όπως αυτά που υπάρχουν σε παλιά στερεοφωνικά.
Παρά το γεγονός ότι τα ποτενσιόμετρα είναι αναλογικά, λειτουργούν καλά με μικροελεγκτές. Μπορείτε εύκολα ρυθμίστε ένα ποτενσιόμετρο με ένα Raspberry Pi Pico ή Arduino.
Τι είναι ένας περιστροφικός κωδικοποιητής;
Οι περιστροφικοί κωδικοποιητές καθορίζουν τη θέση του άξονα τους χρησιμοποιώντας έναν αισθητήρα για την παροχή αναλογικού ή ψηφιακού σήματος στη συσκευή με την οποία είναι συνδεδεμένα. Αυτό λέει στη συσκευή σε ποια θέση βρίσκεται ο κωδικοποιητής. Δίπλα στον περιστρεφόμενο άξονα, οι περιστροφικοί κωδικοποιητές έχουν συνήθως επίσης ένα ενσωματωμένο κουμπί που ενεργοποιείται πιέζοντας τον άξονα προς τα κάτω.
Σε αντίθεση με τα ποτενσιόμετρα, οι περιστροφικοί κωδικοποιητές μπορούν να περιστρέφονται χωρίς να σταματούν και σχεδόν πάντα έχουν απτικά χτυπήματα για κάθε θέση του άξονα. Πολλά σύγχρονα αυτοκίνητα χρησιμοποιούν περιστροφικούς κωδικοποιητές για τον έλεγχο των συστημάτων ψυχαγωγίας τους.
Πώς να χρησιμοποιήσετε ένα ποτενσιόμετρο με ένα Arduino
Χάρη στον απλό σχεδιασμό τους, η χρήση ενός ποτενσιόμετρου με ένα Arduino είναι απλή. Το ποτενσιόμετρο σας έχει τρεις υποδοχές: γείωση, έξοδος και vref. Οι ακροδέκτες γείωσης και vref συνδέονται με τις υποδοχές GND και 5V στο Arduino σας, αντίστοιχα, ενώ η ακίδα εξόδου του ποτενσιόμετρου συνδέεται σε μία από τις αναλογικές εισόδους της πλακέτας σας.
Κωδικός ποτενσιόμετρου Arduino
Ο κωδικός ποτενσιόμετρου Arduino ξεκινά με το βασικό εγκατάσταση () και βρόχος() πρότυπο που θα δείτε όταν δημιουργείτε ένα νέο αρχείο στο Arduino IDE. Αρχικά, προσθέστε ένα const int μεταβλητή στην αρχή του κώδικα για την καταχώρηση της αναλογικής σύνδεσης καρφίτσας του δοχείου—σε αυτήν την περίπτωση, A0.
συνθενθ ποτενσιόμετρο = A0;
Κατόπιν αυτού, το εγκατάσταση () Η λειτουργία είναι απλή: απλά πρέπει να δηλώσετε την ακίδα του ποτενσιόμετρου σας ως είσοδο. Μπορείτε επίσης να ξεκινήσετε μια σειριακή σύνδεση εάν θέλετε να στείλετε δεδομένα στον υπολογιστή σας για διαγνωστικά.
κενόςεγκατάσταση(){
pinMode (ποτενσιόμετρο, INPUT);
Κατα συρροη.αρχίζουν(9600);
}
Στη συνέχεια, ήρθε η ώρα να ρυθμίσετε το βρόχος() λειτουργία. Ξεκινήστε δημιουργώντας ένα ενθ μεταβλητή χρησιμοποιώντας το analogRead() λειτουργία για την αποθήκευση της θέσης του ποτενσιόμετρου σας. Μετά από αυτό, μπορείτε να χρησιμοποιήσετε το χάρτης() λειτουργία για να μειώσει το μέγεθος της τιμής με την οποία αντιμετωπίζετε—σε αυτό το παράδειγμα για να ταιριάζει με τις προδιαγραφές PWM, για παράδειγμα για τον έλεγχο της φωτεινότητας ενός LED. Προσθέστε μια μικρή καθυστέρηση για να εξασφαλίσετε σταθερότητα.
κενόςβρόχος(){
ενθ potentiometerValue = analogRead (ποτενσιόμετρο);
χάρτης (potentiometerValue, 0, 1023, 0, 255);
Κατα συρροη.println(Τιμή ποτενσιόμετρου);
καθυστέρηση (10);
}
Τώρα που έχετε τη θέση του ποτενσιόμετρου σας, μπορείτε να το χρησιμοποιήσετε με άλλα μέρη του κώδικα. Για παράδειγμα, ένα αν Η δήλωση θα λειτουργούσε καλά για να ενεργοποιήσει τον κωδικό όταν το ποτενσιόμετρο βρίσκεται σε μια συγκεκριμένη θέση.
συνθενθ ποτενσιόμετρο = A0;
κενόςεγκατάσταση(){
pinMode (ποτενσιόμετρο, INPUT);
Κατα συρροη.αρχίζουν(9600);
}
κενόςβρόχος(){
ενθ potentiometerValue = analogRead (ποτενσιόμετρο);
χάρτης (potentiometerValue, 0, 1023, 0, 255);
Κατα συρροη.println(Τιμή ποτενσιόμετρου);
καθυστέρηση (10);
}
Πώς να χρησιμοποιήσετε έναν περιστροφικό κωδικοποιητή με ένα Arduino
Οι περιστροφικοί κωδικοποιητές απαιτούν πιο περίπλοκο κώδικα από τα ποτενσιόμετρα, αλλά εξακολουθούν να είναι αρκετά εύκολο να εργαστούν μαζί τους. Ο περιστροφικός κωδικοποιητής σας έχει πέντε ακροδέκτες: γείωση, VCC, μια ακίδα κουμπιού (SW), έξοδο A (CLK) και έξοδο B (DT). Οι ακίδες γείωσης και VCC συνδέονται στη γείωση και τις υποδοχές 5V στο Arduino σας, αντίστοιχα, ενώ οι ακίδες SW, CLK και BT συνδέονται σε μεμονωμένες ψηφιακές υποδοχές στο Arduino.
Κωδικός περιστροφικού κωδικοποιητή Arduino
Για να κάνουμε τον κώδικά μας απλούστερο και ευκολότερο στην εργασία, θα χρησιμοποιήσουμε τη βιβλιοθήκη SimpleRotary Arduino που δημιουργήθηκε από το MPrograms στο GitHub. Βεβαιωθείτε ότι έχετε εγκαταστήσει αυτήν τη βιβλιοθήκη προτού ξεκινήσετε να εργάζεστε στον κώδικά σας.
Όπως και ο κωδικός του ποτενσιόμετρου σας, μπορείτε να ξεκινήσετε το σενάριο του περιστροφικού κωδικοποιητή με το βασικό Arduino εγκατάσταση () και βρόχος() πρότυπο λειτουργίας. Ξεκινήστε δηλώνοντας τη βιβλιοθήκη SimpleRotary και εκχωρώντας τις ακίδες του κωδικοποιητή σας με αυτήν τη σειρά. CLK, DT και SW.
#περιλαμβάνω
SimpleRotary περιστροφικός(1,2,3);
Δεν χρειάζεται να προσθέσετε τίποτα στο δικό σας εγκατάσταση () λειτουργούν εκτός εάν θέλετε να χρησιμοποιήσετε τη σειριακή οθόνη για τη διάγνωση του περιστροφικού κωδικοποιητή σας.
κενόςεγκατάσταση(){
Κατα συρροη.αρχίζουν(9600);
}
ο βρόχος() η λειτουργία είναι μια διαφορετική ιστορία. Ο προσδιορισμός της περιστροφής του άξονα του κωδικοποιητή ξεκινά με α rotary.rotate() κλήση συνάρτησης που έχει εκχωρηθεί σε ένα ενθ μεταβλητός. Εάν το αποτέλεσμα είναι 1, ο κωδικοποιητής γυρίζει δεξιόστροφα. Εάν το αποτέλεσμα είναι 2, ο κωδικοποιητής περιστρέφεται αριστερόστροφα. Το αποτέλεσμα θα είναι πάντα 0 εάν ο κωδικοποιητής δεν έχει γυρίσει από τον τελευταίο έλεγχο.
Μπορείς να χρησιμοποιήσεις αν δηλώσεις για ενεργοποίηση άλλου κώδικα ανάλογα με την κατεύθυνση περιστροφής του κωδικοποιητή.
κενόςβρόχος(){
ενθ encoderRotation;
encoderRotation = rotary.rotate();if (encoderRotation == 1) {
Serial.println("δεξιόστροφος");
}
if (encoderRotation == 2) {
Serial.println("αριστερόστροφα");
}
}
Πρέπει επίσης να προσθέσετε κάποιο κωδικό για το κουμπί του κωδικοποιητή σας στο βρόχος() λειτουργία. Αυτή η διαδικασία είναι πολύ παρόμοια, μόνο που θα χρησιμοποιήσετε το rotary.push() λειτουργία, παρά rotary.rotate().
κενόςβρόχος(){
ενθ encoderButton;
encoderButton = rotary.push();
εάν (encoderButton == 1) {
Serial.println("κουμπί πατημένο");
}
}
Αυτό το σενάριο είναι αρκετά απλό και μπορείτε να κάνετε πολλά για να το κάνετε δικό σας. Αξίζει να ελέγξετε την τεκμηρίωση του έργου SimpleRotary για να βεβαιωθείτε ότι χρησιμοποιείτε όλες τις βασικές λειτουργίες του. Μόλις συνδυαστεί, ο κωδικός κωδικοποιητή σας θα πρέπει να μοιάζει με αυτό.
#περιλαμβάνω
SimpleRotary περιστροφικός(1,2,3);κενόςεγκατάσταση(){
Κατα συρροη.αρχίζουν(9600);
}κενόςβρόχος(){
ενθ encoderRotation;
encoderRotation = rotary.rotate();if (encoderRotation == 1) {
Serial.println("δεξιόστροφος");
}if (encoderRotation == 2) {
Serial.println("αριστερόστροφα");
}ενθ encoderButton;
encoderButton = rotary.push();
εάν (encoderButton == 1) {
Serial.println("κουμπί πατημένο");
}
}
Πώς να επιλέξετε μεταξύ ποτενσιόμετρων και περιστροφικών κωδικοποιητών για έργα
Όπως μπορείτε να δείτε, οι περιστροφικοί κωδικοποιητές και τα ποτενσιόμετρα λειτουργούν αρκετά διαφορετικά. Και τα δύο αυτά εξαρτήματα σάς προσφέρουν νέους τρόπους για να ελέγχετε τα ηλεκτρονικά σας έργα, αλλά ποιον πρέπει να επιλέξετε;
Τα ποτενσιόμετρα είναι οικονομικά και εύκολα στη χρήση, αλλά επιτρέπουν μόνο περιορισμένο εύρος εισόδου. Αυτό τα καθιστά εξαιρετικά όταν θέλετε να ελέγξετε τη φωτεινότητα ενός LED ή να αυξήσετε και να μειώσετε την ισχύ σε συγκεκριμένα εξαρτήματα και άλλες παρόμοιες εργασίες.
Οι περιστροφικοί κωδικοποιητές παρέχουν πολύ μεγαλύτερη εμβέλεια από τα ποτενσιόμετρα. Η συμπερίληψη ενός κουμπιού σημαίνει ότι είναι εξαιρετικά για συστήματα ελέγχου μενού, όπως φαίνεται σε πολλά σύγχρονα αυτοκίνητα. Αυτός ο τύπος εξαρτήματος έχει γίνει πολύ δημοφιλής στον χώρο του μηχανικού πληκτρολογίου. Μπορείτε ακόμη και δημιουργήστε ένα μικρό macropad με ενσωματωμένο κωδικοποιητή.
Παρόμοια εμφάνιση, διαφορετικά εξαρτήματα
Έχοντας όλες αυτές τις πληροφορίες στη ζώνη σας, θα πρέπει να είστε έτοιμοι να ξεκινήσετε ένα έργο ηλεκτρονικών με ένα ποτενσιόμετρο ή έναν περιστροφικό κωδικοποιητή. Αυτά τα εξαρτήματα μπορούν να σας δώσουν μεγάλο έλεγχο στα κυκλώματα που κατασκευάζετε, αλλά πρέπει να βεβαιωθείτε ότι έχετε επιλέξει τη σωστή επιλογή για το έργο σας.