Kategorien: Mikrocontroller-Schaltungen
Anzahl der Aufrufe: 16.299
Kommentare zum Artikel: 0

So verbinden Sie den Inkrementalgeber mit Arduino

 

In Geräten auf Mikrocontrollern müssen Sie häufig die Verwaltung von Menüelementen organisieren oder einige Anpassungen vornehmen. Es gibt viele Möglichkeiten: Verwenden Sie Tasten, variable Widerstände oder Encoder. Mit dem Inkrementalgeber können Sie durch die endlose Drehung des Griffs etwas steuern. In diesem Artikel werden wir uns ansehen, wie der Inkrementalgeber und Arduino funktionieren.

So verbinden Sie den Inkrementalgeber mit Arduino

Inkrementelle Encoder-Funktionen

Der Inkrementalgeber ist wie jeder andere Gebertyp eine Drehgriffvorrichtung. In der Ferne ähnelt es einem Potentiometer. Der Hauptunterschied zum Potentiometer besteht darin, dass sich der Encodergriff um 360 Grad dreht. Er hat keine extremen Bestimmungen.

Encoder gibt es in vielen Ausführungen. Inkrementell unterscheidet sich darin, dass es mit seiner Hilfe unmöglich ist, die Position des Griffs zu kennen, sondern nur die Tatsache der Drehung in eine Richtung - nach links oder rechts. Anhand der Anzahl der Signalimpulse können Sie bereits berechnen, in welchem ​​Winkel sie sich gedreht haben.

Encoder und Arduino

Auf diese Weise können Sie passieren Mikrocontroller Befehl, verwalten Sie beispielsweise das Menü, die Lautstärke usw. Im Alltag konnte man sie in Autoradios und anderen Geräten sehen. Es wird als multifunktionales Pegelanpassungsorgan, Equalizer und Menünavigation verwendet.

Schallpegelregler

Arbeitsprinzip

Im Inneren des Inkrementalgebers befindet sich eine Platte mit Beschriftungen und Schiebereglern, die mit ihnen in Kontakt kommen. Seine Struktur ähnelt einem Potentiometer.

Demontierter Encoder

In der Abbildung oben sehen Sie eine Scheibe mit Markierungen, die benötigt werden, um die elektrische Verbindung mit dem beweglichen Kontakt zu unterbrechen. Als Ergebnis erhalten Sie Daten über die Drehrichtung. Das Design des Produkts ist nicht so wichtig, lassen Sie uns das Funktionsprinzip verstehen.

Encoder Design

Der Encoder hat drei Informationsausgänge, einen gemeinsamen, die anderen beiden werden normalerweise als "A" und "B" bezeichnet. In der obigen Abbildung sehen Sie den Encoder-Pin mit einer Taste - Sie können ein Signal empfangen, wenn Sie auf seine Welle klicken.

Welches Signal erhalten wir? Abhängig von der Drehrichtung erscheint die logische Einheit zuerst an Pin A oder B, sodass wir ein phasenverschobenes Signal erhalten. Mit dieser Verschiebung können wir bestimmen, in welche Richtung. Das Signal wird in Form einer rechteckigen Form erhalten, und der Mikrocontroller wird gesteuert, nachdem die Daten der Drehrichtung und der Anzahl der Impulse verarbeitet wurden.

Arbeitsprinzip

Die Abbildung zeigt das Symbol der Platte mit den Kontakten, in der Mitte die Grafik der Ausgangssignale und rechts die Statustabelle. Dieses Gerät wird oft als zwei Tasten gezeichnet, was logisch ist, da wir tatsächlich ein Signal "vorwärts" oder "zurück", "hoch" oder "runter" und die Anzahl der Aktionen erhalten.

Geberschaltung

Hier ist ein Beispiel für eine echte Encoder-Pinbelegung:

Beispiel einer echten Encoder-Pinbelegung

Interessant:

Ein fehlerhafter Encoder kann durch zwei Tasten ohne Verriegelung ersetzt werden und umgekehrt: hausgemachte Steuerung, bei der zwei dieser Tasten durch Einstellen des Encoders finalisiert werden können.

Im Video unten sehen Sie den Wechsel des Signals an den Klemmen - während der sanften Drehung leuchten die LEDs in der im vorherigen Diagramm wiedergegebenen Reihenfolge.

Nicht weniger deutlich in der folgenden Animation dargestellt (klicken Sie auf das Bild):

Das Gerät und Funktionsprinzip des Encoders

Der Encoder kann sowohl optisch (das Signal wird von Emittern durch Fotodetektoren erzeugt, siehe Abbildung unten) als auch magnetisch (er arbeitet mit dem Hall-Effekt) sein. In diesem Fall hat er keine Kontakte und eine längere Lebensdauer.

Winkelsensor

Wie bereits erwähnt, kann die Drehrichtung dadurch bestimmt werden, welches der Ausgangssignale sich zuvor geändert hat, aber so sieht es in der Praxis aus!

Mechanische Befestigungspunkte

Die Genauigkeit der Steuerung hängt von der Auflösung des Encoders ab - der Anzahl der Impulse pro Umdrehung. Die Anzahl der Impulse kann von Einheiten bis zu Tausenden von Teilen reichen. Da der Encoder als Positionssensor fungieren kann, erfolgt die Bestimmung umso genauer, je mehr Impulse vorhanden sind.Dieser Parameter wird als PPR - Impuls pro Umdrehung bezeichnet.

Es gibt jedoch eine kleine Nuance, nämlich eine ähnliche Bezeichnung LPR ist die Anzahl der Etiketten auf der Platte.

Und die Anzahl der verarbeiteten Impulse. Jedes Etikett auf der Platte gibt an jedem der beiden Ausgänge einen Rechteckimpuls aus. Der Impuls hat zwei Fronten - die hintere und die vordere. Da es zwei Auswege gibt, erhalten wir jeweils 4 Impulse, deren Werte Sie verarbeiten können.

PPR = LPRx4


Stellen Sie eine Verbindung zu Arduino her

Wir haben herausgefunden, was Sie über den Inkrementalgeber wissen müssen. Lassen Sie uns nun herausfinden, wie Sie ihn mit dem Arduino verbinden können. Betrachten Sie das Anschlussdiagramm:

Das Anschlussdiagramm des Positionssensors zu Arduino

Ein Gebermodul ist die Karte, auf der sich der Inkrementalgeber und die Pull-up-Widerstände befinden. Sie können beliebige Stifte verwenden.

Schaltplan des Encoders

Wenn Sie kein Modul, sondern einen separaten Encoder haben, müssen Sie nur diese Widerstände hinzufügen, die Schaltung unterscheidet sich im Prinzip nicht. Überprüfung der Drehrichtung und ihrer Funktionsfähigkeit in Verbindung mit Arduino Wir können Informationen von der seriellen Schnittstelle lesen.

Programmbeispiel

Lassen Sie uns den Code der Reihe nach genauer analysieren. In void setup () haben wir angekündigt, die Kommunikation über die serielle Schnittstelle zu verwenden und dann die Pins 2 und 8 im Eingangsmodus zu setzen. Wählen Sie die PIN-Nummern anhand Ihres Verbindungsschemas aus. Die Konstante INPUT_PULLUP legt den Eingabemodus fest. Das Arduino hat zwei Optionen:

  • EINGANG - Eingang ohne Pull-up-Widerstände;

  • INPUT_PULLUP - Verbindung zum Eingang von Pull-up-Widerständen. Im Mikrocontroller befinden sich bereits Widerstände, über die der Eingang mit dem Power Plus (Pullup) verbunden ist.

Wenn Sie Widerstände verwenden, um das Power Plus wie in den obigen Abbildungen gezeigt festzuziehen, oder das Encoder-Modul verwenden, verwenden Sie den Befehl INPUT, und wenn Sie aus irgendeinem Grund keine externen Widerstände verwenden können oder wollen - INPUT_PULLUP.

Die Logik des Hauptprogramms lautet wie folgt: Wenn wir einen am Eingang „2“ haben, gibt er Port H an den Monitor aus, wenn nicht, L. Wenn Sie also auf dem Monitor der seriellen Schnittstelle in eine Richtung drehen, erhalten Sie ungefähr Folgendes: LL HL HH LH LL. Und umgekehrt: LL LH HH HL LL.

Wenn Sie die Zeilen sorgfältig gelesen haben, haben Sie wahrscheinlich bemerkt, dass in einem Fall das erste Zeichen einen Wert erhalten hat und in dem anderen Fall das zweite Zeichen zuerst geändert wurde.


Fazit

Inkrementalgeber haben in Verstärkern für akustische Systeme eine breite praktische Anwendung gefunden - sie wurden als Lautstärkeregler, in Autoradios verwendet -, um Klangparameter anzupassen und Menüs zu navigieren. In Computermäusen scrollen Sie täglich Seiten (ein Rad ist auf der Welle installiert). . Und auch bei Messwerkzeugen, CNC-Maschinen, Robotern, Selsyn nicht nur als Steuerung, sondern auch zum Messen von Werten und Bestimmen der Position.

Siehe auch auf i.electricianexp.com:

  • Methoden zum Lesen und Verwalten von Arduino-E / A-Ports
  • Motor- und Servosteuerung mit Arduino
  • Funktionen zum Anschließen von Geräten an Arduino
  • Anschließen und Programmieren von Arduino für Anfänger
  • Beliebteste Sensoren für Arduino

  •