Ποια είναι η διαφορά μεταξύ του ποτενσιόμετρου Arduino και του περιστροφικού κωδικοποιητή

Poia Einai E Diaphora Metaxy Tou Potensiometrou Arduino Kai Tou Peristrophikou Kodikopoiete



Τα ποτενσιόμετρα και οι περιστροφικοί κωδικοποιητές χρησιμοποιούνται και τα δύο για την ανίχνευση περιστροφής ή ανίχνευσης θέσης. Είναι ηλεκτρομηχανικές συσκευές που χρησιμοποιούνται με ποικίλες εφαρμογές στον τομέα των ηλεκτρονικών. Μπορούν επίσης να συνδεθούν με το Arduino για τη δημιουργία διαφορετικών έργων. Αυτό το άρθρο πρόκειται να δείξει τις θεμελιώδεις διαφορές μεταξύ ενός ποτενσιόμετρου και ενός περιστροφικού κωδικοποιητή.

Τι είναι το ποτενσιόμετρο

Το ποτενσιόμετρο είναι ένας ρεοστάτης ή μπορούμε να τον ονομάσουμε μεταβλητή αντίσταση. Η τιμή της αντίστασης ποικίλλει ανάλογα με την περιστροφή του άξονα του ποτενσιόμετρου. Τα ποτενσιόμετρα μπορούν να στραφούν μόνο σε μια καθορισμένη απόσταση. Υπάρχουν και αναλογικά και ψηφιακά ποτενσιόμετρα, αλλά είναι σχεδόν παρόμοια. Τα αναλογικά ποτενσιόμετρα μπορούν να συνδεθούν με μικροελεγκτές σε Arduino, Raspberry Pi και άλλες συσκευές. Ένα ποτενσιόμετρο διαθέτει τρεις ακίδες που είναι η ακίδα τάσης εισόδου Vcc, η ακίδα γείωσης GND και η ακίδα σήματος εισόδου. Η ακίδα σήματος παρέχει είσοδο στο Arduino.









Τι είναι ο Rotary Encoder

Οι περιστροφικοί κωδικοποιητές αντιλαμβάνονται τη γωνιακή θέση του περιστροφικού κουμπιού και στέλνουν ένα σήμα στον μικροελεγκτή ή σε οποιαδήποτε άλλη συσκευή στην οποία είναι συνδεδεμένοι. Διαθέτει δίσκο με ομοιόμορφα απέχουσες περιοχές επαφής που συνδέονται σε μια κοινή ακίδα. Οι περιστροφικοί κωδικοποιητές διαθέτουν επίσης ένα ενσωματωμένο κουμπί ή περιστροφικό διακόπτη που δίνει σήματα ON και OFF σύμφωνα με συγκεκριμένες απαιτήσεις.







Διάγραμμα Pinout και Pin Περιγραφή του Rotary Encoder

Το παρακάτω διάγραμμα δείχνει τις ακίδες του περιστροφικού κωδικοποιητή. Αυτές οι ακίδες περιγράφονται ως εξής:

Έξω Β ή CLK



Αυτή η ακίδα δίνει μια έξοδο για το πόσες φορές έχει περιστραφεί το κουμπί ή ο περιστροφικός κωδικοποιητής. Κάθε φορά που περιστρέφεται το κουμπί, το CLK ολοκληρώνει έναν κύκλο HIGH και LOW. Υπολογίζεται ως μία περιστροφή.

Έξω A ή DT

Αυτή είναι η δεύτερη ακίδα εξόδου του περιστροφικού κωδικοποιητή που καθορίζει την κατεύθυνση περιστροφής. Υστερεί 90° σε σχέση με το σήμα CLK. Επομένως, εάν η κατάστασή του δεν είναι ίση με την κατάσταση του CLK, τότε η φορά περιστροφής είναι δεξιόστροφα, διαφορετικά, αριστερόστροφα.

Διακόπτης

Ο πείρος του διακόπτη χρησιμοποιείται για να ελέγξει εάν το κουμπί ώθησης είναι πατημένο ή όχι.

Vcc

Αυτή η ακίδα είναι συνδεδεμένη σε τροφοδοσία 5V

GND

Αυτή η ακίδα συνδέεται με το έδαφος

Διαφορά μεταξύ ποτενσιόμετρου και περιστροφικού κωδικοποιητή

Προσδιορισμός Ποτενσιόμετρο Περιστροφικός Κωδικοποιητής
Περιστροφή Το ποτενσιόμετρο μπορεί να περιστραφεί μόνο προς μία κατεύθυνση, και αυτή επίσης για τα τρία τέταρτα του κύκλου. Ο Περιστροφικός Κωδικοποιητής είναι ικανός να περιστρέφεται 360° συνεχώς, τόσο δεξιόστροφα όσο και αριστερόστροφα.
Αναλογική ή Ψηφιακή Συσκευή Το ποτενσιόμετρο είναι ως επί το πλείστον μια αναλογική συσκευή εισόδου που μετρά την αλλαγή θέσης μέσω μιας αλλαγής στην τιμή μιας αντίστασης Ο περιστροφικός κωδικοποιητής είναι μια ψηφιακή συσκευή εισόδου που ανιχνεύει τη γωνιακή θέση και παρέχει ψηφιακές τιμές.

Αριθμός θέσεων εισόδου Ένα ποτενσιόμετρο έχει άπειρο αριθμό θέσεων εισόδου στις οποίες μπορούν να ληφθούν τιμές επειδή είναι μια αναλογική συσκευή Οι περιστροφικοί κωδικοποιητές έχουν έναν πεπερασμένο αριθμό θέσεων εισόδου.

Ρύθμιση ποτενσιόμετρου με Arduino

Το ποτενσιόμετρο ρυθμίζεται ευκολότερα με ένα Arduino παρά με έναν περιστροφικό κωδικοποιητή. Το ποτενσιόμετρο έχει μόνο τρεις ακίδες VCC, GND και έναν ακροδέκτη INPUT που είναι συνδεδεμένος στο Arduino. Η διασύνδεση του ποτενσιόμετρου με το Arduino φαίνεται παρακάτω:

Ο προγραμματισμός του ποτενσιόμετρου στο Arduino είναι ευκολότερος από αυτόν του περιστροφικού κωδικοποιητή. Παρακάτω δίνονται τα δείγματα συντακτικών κωδικών και για τα δύο.

Δείγμα κώδικα για ποτενσιόμετρο

const int pot = A0; // Δηλώστε τον ακροδέκτη εισόδου
ρύθμιση κενού ( ) {
   PinMode ( κατσαρόλα, ΕΙΣΟΔΟΣ ) ; // Η τιμή ρύθμισης λαμβάνεται από το ποτενσιόμετρο όπως και εισαγωγή
Serial.begin ( 9600 ) ;
}
κενό βρόχο ( ) {
int potValue = αναλογικήΑνάγνωση ( δοχείο ) ; // Ανάγνωση της τιμής εισόδου που λαμβάνεται από το ποτενσιόμετρο
χάρτης ( potValue, 0 , 1023 , 0 , 255 ) ; // Κλιμάκωση της τιμής εισόδου για να ταιριάζει 8 -κομμάτι
Serial.println ( potValue ) ; // Εκτυπώνει την τιμή που εισήχθη στο ποτενσιόμετρο
καθυστέρηση ( 100 ) ;
}

Ο κωδικός του ποτενσιόμετρου είναι πολύ εύκολος και απλός. Ο ακροδέκτης αναλογικής εισόδου του Arduino απλώς δηλώνεται ότι λαμβάνει είσοδο από το ποτενσιόμετρο και στη συνέχεια οι συναρτήσεις analogRead() και map() χρησιμοποιούνται για την ανάγνωση και την ακριβή τιμή της ανάγνωσης από το ποτενσιόμετρο.

Διασύνδεση Rotary Encoder με Arduino

Ο περιστροφικός κωδικοποιητής έχει πέντε ακίδες. Το VCC και το GND του περιστροφικού κωδικοποιητή συνδέονται με αυτό του Arduino. Οι υπόλοιπες ακίδες CLK, DT και SW συνδέονται στις ψηφιακές ακίδες εισόδου του Arduino.

Κωδικός Arduino για Rotary Encoder

// Είσοδοι περιστροφικού κωδικοποιητή
#define CLK_PIN 2
#define DT_PIN 3
#define SW_PIN 4
int μετρητής = 0 ;
int currentCLKState;
int lastCLKState;
String currentDirection = '' ;
ανυπόγραφο long lastButtonPressTime = 0 ;
ρύθμιση κενού ( ) {
// Ρύθμιση ακίδων κωδικοποιητή όπως και εισροές
    pinMode ( CLK_PIN, INPUT ) ;
    pinMode ( DT_PIN, INPUT ) ;
    pinMode ( SW_PIN, INPUT_PULLUP ) ;
// Ρύθμιση σειριακής οθόνης
Serial.begin ( 9600 ) ;
// Διαβάστε την αρχική κατάσταση του CLK
lastCLKState = digitalRead ( CLK_PIN ) ;
}
κενό βρόχο ( ) {
// Διαβάστε την τρέχουσα κατάσταση του CLK
τρέχονCLKState = digitalRead ( CLK_PIN ) ;
// Αν τελευταίος και η τρέχουσα κατάσταση του CLK είναι διαφορετική, έπειτα εμφανίστηκε παλμός
// Αντιδράστε μόνο σε 1 αλλαγή κατάστασης για να αποφευχθεί η διπλή καταμέτρηση
αν ( τρέχουσα κατάσταση CLK ! = lastCLKState && τρέχονCLKState == 1 ) {
// Εάν η κατάσταση DT είναι διαφορετική από την κατάσταση CLK, έπειτα
// ο κωδικοποιητής περιστρέφεται αριστερόστροφα, οπότε μειώνεται
αν ( digitalRead ( DT_PIN ) ! = τρέχουσα CLKState ) {
μετρητής--;
τρέχουσα κατεύθυνση = 'CCW' ;
} αλλού {
// Ο κωδικοποιητής περιστρέφεται δεξιόστροφα, άρα αυξάνεται
counter++;
τρέχουσα κατεύθυνση = 'CW' ;
}
Σειρά.εκτύπωση ( 'Κατεύθυνση περιστροφής:' ) ;
Σειρά.εκτύπωση ( τρέχουσα κατεύθυνση ) ;
Σειρά.εκτύπωση ( ' | Αντίστροφη τιμή: ' ) ;
Serial.println ( μετρητής ) ;
}
// Θυμηθείτε το τελευταίος κατάσταση CLK
lastCLKState = τρέχονCLKState;
// Διαβάστε την κατάσταση του κουμπιού
int buttonState = digitalRead ( SW_PIN ) ;
// Αν εντοπίσουμε σήμα LOW, πατάμε το κουμπί
αν ( buttonState == LOW ) {
// Αν έχουν περάσει 50 ms από το τελευταίος ΧΑΜΗΛΟΣ παλμός, σημαίνει ότι το
// το κουμπί έχει πατηθεί, απελευθερωθεί και πατηθεί ξανά
αν ( millis ( ) - lastButtonPressTime > πενήντα ) {
Serial.println ( 'Πατήθηκε το κουμπί!' ) ;
}
// Θυμηθείτε το τελευταίος εκδήλωση πατήματος κουμπιού χρόνος
lastButtonPressTime = χιλιοστά ( ) ;
}
// Βάζω σε μια μικρή καθυστέρηση για να βοήθεια αποκρούω την ανάγνωση
καθυστέρηση ( 1 ) ;
}

Στον παραπάνω κώδικα, η κατάσταση του pin CLK ελέγχεται στη συνάρτηση loop(). Εάν δεν είναι ίσο με την προηγούμενη κατάστασή του, δείχνει ότι το περιστροφικό κουμπί έχει περιστραφεί. Τώρα, για να ελέγξουμε την κατεύθυνση περιστροφής του κουμπιού, η παρούσα κατάσταση του CLK συγκρίνεται με την κατάσταση του DT. Εάν και οι δύο καταστάσεις είναι άνισες, δείχνει ότι το πόμολο έχει περιστραφεί δεξιόστροφα και αντίθετα αυξάνει την τιμή του για να δείξει τη θέση του περιστροφικού κουμπιού. Στην αντίθετη περίπτωση, ο μετρητής μειώνεται.

Εφαρμογές

Τα ποτενσιόμετρα χρησιμοποιούνται κυρίως όπου απαιτείται λειτουργία ελέγχου. Χρησιμοποιούνται στον έλεγχο έντασης, έλεγχο φωτεινότητας LED. Από την άλλη πλευρά, οι Rotary encoders προσφέρουν ένα ευρύ φάσμα εφαρμογών. Χρησιμοποιούνται στη ρομποτική, τον ιατρικό εξοπλισμό, τον αυτοματισμό και τα παιχνίδια.

συμπέρασμα

Τα ποτενσιόμετρα και οι περιστροφικοί κωδικοποιητές είναι και οι δύο ιδιαίτερα χρήσιμες συσκευές στον τομέα των ηλεκτρονικών. Οι περιστροφικοί κωδικοποιητές είναι προηγμένοι σε σύγκριση με τα ποτενσιόμετρα, καθώς μπορούν να περιστρέφονται συνεχώς έως 360°. Ομοίως, έχουν περισσότερες εφαρμογές στα σύγχρονα ηλεκτρονικά και είναι ελαφρώς πιο δύσχρηστα από τα ποτενσιόμετρα .