Was ist der Unterschied zwischen Arduino-Potentiometer und Drehgeber?

Was Ist Der Unterschied Zwischen Arduino Potentiometer Und Drehgeber



Sowohl Potentiometer als auch Drehgeber werden zur Rotationserkennung oder Positionserfassung verwendet. Es handelt sich um elektromechanische Geräte mit vielfältigen Einsatzmöglichkeiten im Bereich der Elektronik. Sie können auch mit Arduino verbunden werden, um verschiedene Projekte zu realisieren. Dieser Artikel soll die grundlegenden Unterschiede zwischen einem Potentiometer und einem Drehgeber veranschaulichen.

Was ist ein Potentiometer?

Ein Potentiometer ist ein Rheostat, oder wir können es einen variablen Widerstand nennen. Der Widerstandswert variiert je nach Wellendrehung des Potentiometers. Potentiometer können sich nur auf einen bestimmten Abstand drehen. Es gibt sowohl analoge als auch digitale Potentiometer, sie sind sich jedoch nahezu ähnlich. Analoge Potentiometer können mit Mikrocontrollern auf Arduino, Raspberry Pi und anderen Geräten verbunden werden. Ein Potentiometer verfügt über drei Pins: den Eingangsspannungspin Vcc, den Erdungspin GND und den Eingangssignalpin. Der Signalpin stellt einen Eingang für Arduino bereit.









Was ist ein Drehgeber?

Drehgeber erfassen die Winkelposition des Drehknopfs und senden ein Signal an den Mikrocontroller oder ein anderes Gerät, an das sie angeschlossen sind. Es verfügt über eine Scheibe mit gleichmäßig verteilten Kontaktflächen, die mit einem gemeinsamen Stift verbunden sind. Drehgeber verfügen außerdem über einen eingebauten Druckknopf oder Drehschalter, der je nach spezifischen Anforderungen EIN- und AUS-Signale ausgibt.







Pinbelegungsdiagramm und Pinbeschreibung des Drehgebers

Das folgende Diagramm zeigt die Pins des Drehgebers. Diese Pins werden wie folgt beschrieben:

Out B oder CLK



Dieser Pin gibt aus, wie oft der Knopf oder Drehgeber gedreht wurde. Jedes Mal, wenn der Knopf gedreht wird, durchläuft der CLK einen Zyklus von HIGH und LOW. Es wird als eine Umdrehung gezählt.

Aus A oder DT

Dies ist der zweite Ausgangspin des Drehgebers, der die Drehrichtung bestimmt. Es hinkt dem CLK-Signal um 90° hinterher. Wenn sein Zustand also nicht dem Zustand von CLK entspricht, ist die Drehrichtung im Uhrzeigersinn, andernfalls gegen den Uhrzeigersinn.

Schalten

Mit dem Schaltstift wird überprüft, ob der Druckknopf gedrückt ist oder nicht.

Vcc

Dieser Pin ist mit einer 5-V-Versorgung verbunden

GND

Dieser Pin ist mit der Masse verbunden

Unterschied zwischen Potentiometer und Drehgeber

Spezifikation Potentiometer Drehcodierer
Drehung Das Potentiometer lässt sich nur in eine Richtung drehen, und das auch noch für einen Dreiviertelkreis. Der Drehgeber ist in der Lage, sich kontinuierlich um 360° sowohl im Uhrzeigersinn als auch gegen den Uhrzeigersinn zu drehen.
Analoges oder digitales Gerät Das Potentiometer ist meist ein analoges Eingabegerät, das die Positionsänderung durch eine Änderung des Widerstandswerts misst Ein Drehgeber ist ein digitales Eingabegerät, das die Winkelposition erfasst und digitale Werte bereitstellt.

Anzahl der Eingabepositionen Da es sich um ein analoges Gerät handelt, verfügt ein Potentiometer über unendlich viele Eingangspositionen, an denen Werte abgenommen werden können Drehgeber haben eine endliche Anzahl von Eingabepositionen.

Potentiometer mit Arduino einrichten

Das Potentiometer lässt sich mit einem Arduino einfacher einrichten als mit einem Drehgeber. Das Potentiometer hat nur drei Pins VCC, GND und einen INPUT-Pin, der mit Arduino verbunden ist. Die Anbindung des Potentiometers an Arduino ist unten dargestellt:

Die Programmierung des Potentiometers in Arduino ist einfacher als die des Drehgebers. Nachfolgend finden Sie die Beispielsyntaxcodes für beide.

Beispielcode für Potentiometer

const int pot = A0; // Eingabe-Pin deklarieren
ungültiges Setup ( ) {
   pinMode ( Poti, EINGANG ) ; // Setup-Wert vom Potentiometer übernommen als Eingang
Serial.begin ( 9600 ) ;
}
Leere Schleife ( ) {
int potValue = analogRead ( Topf ) ; // Lesen Sie den vom Potentiometer erfassten Eingangswert ab
Karte ( PotValue, 0 , 1023 , 0 , 255 ) ; // Den Wert der Eingabe entsprechend skalieren 8 -Bit
Serial.println ( PotValue ) ; // Druckt den Wert, der in das Potentiometer eingegeben wurde
Verzögerung ( 100 ) ;
}

Der Potentiometercode ist sehr einfach und unkompliziert. Der analoge Eingangspin von Arduino wird einfach so deklariert, dass er den Eingang vom Potentiometer empfängt, und dann werden die Funktionen analogRead() und map() verwendet, um den genauen Messwert vom Potentiometer zu lesen und anzugeben.

Schnittstelle zwischen Drehgeber und Arduino

Der Drehgeber hat fünf Pins. VCC und GND des Drehgebers sind mit denen des Arduino verbunden. Die verbleibenden Pins CLK, DT und SW sind mit den digitalen Eingangspins von Arduino verbunden.

Arduino-Code für Drehgeber

// Drehgebereingänge
#define CLK_PIN 2
#define DT_PIN 3
#define SW_PIN 4
int counter = 0 ;
int currentCLKState;
int lastCLKState;
String currentDirection = „“ ;
unsigned long lastButtonPressTime = 0 ;
ungültiges Setup ( ) {
// Encoder-Pins einstellen als Eingänge
    pinMode ( CLK_PIN, EINGANG ) ;
    pinMode ( DT_PIN, EINGANG ) ;
    pinMode ( SW_PIN, INPUT_PULLUP ) ;
// Richten Sie den seriellen Monitor ein
Serial.begin ( 9600 ) ;
// Lesen Sie den Anfangszustand von CLK
lastCLKState = digitalRead ( CLK_PIN ) ;
}
Leere Schleife ( ) {
// Lesen Sie den aktuellen Status von CLK
currentCLKState = digitalRead ( CLK_PIN ) ;
// Wenn zuletzt und der aktuelle Zustand von CLK sind unterschiedlich, Dann es kam zu einem Puls
// Reagieren Sie nur auf 1 Zustandsänderung, um Doppelzählungen zu vermeiden
Wenn ( currentCLKState ! = lastCLKState && currentCLKState == 1 ) {
// Wenn sich der DT-Status vom CLK-Status unterscheidet, Dann
// Der Encoder dreht sich gegen den Uhrzeigersinn, also dekrementieren
Wenn ( digitalRead ( DT_PIN ) ! = currentCLKState ) {
Schalter--;
aktuelle Richtung = „gegen den Uhrzeigersinn“ ;
} anders {
// Der Encoder dreht sich im Uhrzeigersinn, also inkrementieren
counter++;
aktuelle Richtung = „CW“ ;
}
Seriendruck ( 'Drehrichtung: ' ) ;
Seriendruck ( aktuelle Richtung ) ;
Seriendruck ( ' | Zählerwert: ' ) ;
Serial.println ( Schalter ) ;
}
// Denken Sie daran zuletzt CLK-Zustand
lastCLKState = currentCLKState;
// Lesen Sie den Schaltflächenstatus
int buttonState = digitalRead ( SW_PIN ) ;
// Wenn wir ein LOW-Signal erkennen, wird die Taste gedrückt
Wenn ( buttonState == LOW ) {
// Wenn seit dem 50 ms vergangen sind zuletzt NIEDRIGER Puls bedeutet, dass die
// Die Taste wurde gedrückt, losgelassen und erneut gedrückt
Wenn ( Millis ( ) - lastButtonPressTime > fünfzig ) {
Serial.println ( „Knopf gedrückt!“ ) ;
}
// Denken Sie daran zuletzt Tastendruck-Ereignis Zeit
lastButtonPressTime = Millis ( ) ;
}
// Setzen In eine leichte Verzögerung Hilfe entprellen Sie den Messwert
Verzögerung ( 1 ) ;
}

Im oben angegebenen Code wird der Zustand des CLK-Pins in der Funktion loop() überprüft. Wenn er nicht dem vorherigen Zustand entspricht, zeigt dies an, dass sich der Drehknopf gedreht hat. Um nun die Drehrichtung des Knopfes zu überprüfen, wird der aktuelle Zustand von CLK mit dem Zustand von DT verglichen. Wenn beide Zustände ungleich sind, zeigt dies an, dass sich der Knopf im Uhrzeigersinn gedreht hat, und der Zähler erhöht seinen Wert, um die Position des Drehknopfs anzuzeigen. Im umgekehrten Fall verringert sich der Zähler.

Anwendungen

Potentiometer werden hauptsächlich dort eingesetzt, wo eine Steuerfunktion erforderlich ist. Sie werden zur Lautstärkeregelung und LED-Helligkeitsregelung verwendet. Andererseits bieten Drehgeber ein breites Anwendungsspektrum. Sie werden in der Robotik, medizinischen Geräten, Automatisierung und Gaming eingesetzt.

Abschluss

Potentiometer und Drehgeber sind beides besonders nützliche Geräte im Bereich der Elektronik. Drehgeber sind im Vergleich zu Potentiometern eine Weiterentwicklung, da sie sich stufenlos um 360° drehen können. Ebenso finden sie in der modernen Elektronik mehr Anwendung und sind etwas schwieriger zu verwenden als Potentiometer .