In diesem Tutorial werden wir einen Drehgeber mit dem ATmega8-Mikrocontroller verbinden. ATmega8 ist die Mikrocontroller-Serie von atmel für eingebettete Anwendungen. Der Drehgeber wird verwendet, um die Position der Bewegung und die Winkelbewegung eines Motors oder einer Achse zu kennen. Normalerweise handelt es sich um ein Gerät mit drei Anschlüssen, wobei die Anzahl der Strom- und Erdungsstifte bis fünf beträgt. Ein Drehgebermodul ist unten dargestellt.
Die Stifte eines Drehgebers sind:
- Boden.
- Positiv an + 5V angeschlossen
- Ausgangssignal A Pin
- Ausgangssignal B Pin
- Clock Pin oder Common Pin.
Der ENCODER liefert Impulse, die die Änderung der Wellenposition darstellen, damit die Systeme sie verstehen können. Stellen Sie sich vor, ein ROTATORY ENCODER ist eingeschaltet und die Welle ist bewegt.
Beachten Sie, wie in der obigen Tabelle gezeigt, dass die Welle im Uhrzeigersinn bewegt wird. Damit wird es Falling Edge am A-Terminal und dann am B-Terminal geben.
Beachten Sie, dass die Welle gegen den Uhrzeigersinn bewegt wird. Damit befindet sich Falling Edge am B-Anschluss und dann am A-Anschluss.
Diese Kante tritt einmal für 360/20 = 18 Grad auf (Dies ist für einen Encoder mit 20 Positionen, dies ändert sich von Typ zu Typ, je höher die Anzahl, desto genauer).
Mit beiden oben genannten Bedingungen können wir Richtung und Grad der Drehung erhalten. Somit erhalten wir die erforderlichen Parameter, um die Position einer Welle zu ermitteln.
Komponenten
Hardware: ATMEGA8, Verbindungsstifte, AVR-ISP-PROGRAMMER, 220 Ω-Widerstand, LED (acht Teile), 1 kΩ-Widerstand, 220 Ω-Widerstand (2 Stück), 100 nF-Kondensator (2 Stück), Steckbrett.
Software: Atmel Studio 6.1, Progisp oder Flash Magic.
Schaltplan und Arbeitserklärung
Die Kondensatoren hier dienen zum Neutralisieren des Kontaktprelleffekts in ENCODER. Ohne diese Kondensatoren treten beim Lesen der Position einige ernsthafte Probleme auf.
Wenn die Welle bewegt wird, gibt es einen Zeitunterschied zwischen zwei Ausgangsstiften. Der ATMEGA8 erkennt diesen Zeitunterschied für die Drehung gegen den Uhrzeigersinn im Uhrzeigersinn.
Wenn die Drehung im Uhrzeigersinn erfolgt, wird die Binärzahl um eins erhöht, und diese Zahl wird im LED-Anschluss angezeigt (siehe Abbildung).
Wenn die Drehung gegen den Uhrzeigersinn ist, wird die Binärzahl um eins dekrementiert und die Binärzahl wird im LED-Byte angezeigt.
Denken Sie daran, dass wir hier keine Sicherungsbits von atmega8 setzen. Der Controller arbeitet also mit einem internen 1-MHz-Standardkristall.
Die Funktionsweise der Schnittstelle zwischen Drehgeber und ATmega8-Mikrocontroller wird im folgenden Code erläutert.