Wie der Drehgeber funktioniert und wie er mit Arduino verbunden wird

Wie Der Drehgeber Funktioniert Und Wie Er Mit Arduino Verbunden Wird



Drehgeber sind ein wichtiges elektromechanisches Gerät, das im Bereich der Elektronik vielfältige Einsatzmöglichkeiten hat. In diesem Artikel werden die Typen und Funktionsweisen des Drehgebers sowie seine Schnittstelle zu Arduino erläutert.

Was ist ein Drehgeber?

Ein Drehgeber ist ein digitales Eingabegerät, das die Winkelposition des Drehknopfs erfasst und Signale an den Mikrocontroller oder ein anderes Gerät sendet, an das es angeschlossen ist. Sie können sich um 360° drehen, ohne anzuhalten. Er wird auch Drehgeber genannt. Es wird in Druckern, Audioelektronik, Motoren und Steuerungen verwendet.









Arten von Drehgebern

Es gibt hauptsächlich zwei Arten von Drehgebern, deren Entscheidung auf dem von ihnen erzeugten Ausgangssignal basiert. Diese Typen heißen:



Inkrementaler Drehgeber

Dieser Encodertyp zählt Umdrehungen des Drehknopfes in Form von Impulsen. Wenn der Knopf einmal gedreht wird, wird ein Impuls erzeugt. Bei jedem Impuls erhöht sich der Zähler, um die Winkelposition der Welle anzuzeigen.





Absoluter Drehgeber

Dieser Encodertyp gibt die absolute Winkelposition der Welle an, da er für jede Wellenposition einen separaten Code hat und den Winkel über diesen Code misst. Es ist kein Zähler erforderlich, um die Winkelposition auszugeben. Auch wenn der absolute Drehgeber stromlos ist, bleiben die jeweiligen Werte für Winkelpositionen erhalten. Es ist auch ein kostengünstiger Encoder.



Funktionsweise des Drehgebers

Der Drehgeber besteht aus einer Scheibe mit gleichmäßig verteilten Bereichen, die mit einem gemeinsamen Pin C verbunden sind, der geerdet ist. Die beiden anderen Pins A und B sind Kontaktstifte, die beim Drehen des Drehknopfes Kontakt zu C herstellen. Wenn Pin A oder B mit Masse verbunden werden, wird ein Signal erzeugt. Diese von den Ausgangspins erzeugten Signale sind um 90° phasenverschoben. Dies liegt daran, dass Pin A mit Masse verbunden wird, wenn der Knopf im Uhrzeigersinn gedreht wird, und Pin B zuerst mit Masse verbunden wird, wenn der Knopf gegen den Uhrzeigersinn gedreht wird. Daher wird die Drehrichtung des Knopfes über diese Verbindungen bestimmt.

Wenn der Zustand von B ist ungleich zu A , dann hat sich der Knopf im Uhrzeigersinn gedreht.


Wenn der Zustand von B gleich dem von A ist, hat sich der Knopf gegen den Uhrzeigersinn gedreht.

Pin-Konfiguration des Drehgebers

Das folgende Diagramm zeigt eine Pinbelegung des Drehgebers, die die Ausgangspins A und B, einen Drehschalter, der als Druckknopf verwendet werden kann, und Pins für die Stromversorgung zeigt.

Pin-Beschreibung des Drehgebers

Im Folgenden finden Sie eine Beschreibung aller Drehgeberstifte.

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

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;
Stringstromrichtung = „“ ;
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 die zuletzt und der aktuelle Zustand von CLK ist anders, 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 die Dekrementierung
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.

Abschluss

Drehgeber sind fortschrittliche Positionssensoren, die sich kontinuierlich drehen können. Sie sind in zwei Ausführungen erhältlich: inkrementell und absolut. Der Drehgeber funktioniert, indem er die durch die Drehung des Knopfes erzeugten Impulse zählt. Es findet vielfältige Anwendungsmöglichkeiten in der Alltagselektronik bis hin zur industriellen Automatisierung.