Inhaltsverzeichnis:
- Schritt 1: Impulsfluss des Drehgebers
- Schritt 2: Pinbelegung des Drehgebers
- Schritt 3: Schaltplan
- Schritt 4: Code
- Schritt 5: Erklärung
- Schritt 6: Ausgabe
Video: Tutorial von Drehgeber mit Arduino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Der Drehgeber ist eine elektronische Komponente, die Bewegung und Position beim Drehen überwachen kann. Der Drehgeber verwendet optische Sensoren, die Impulse erzeugen können, wenn sich der Drehgeber dreht. Die Anwendung des Drehgebers in der Regel als mechanischer oder robotischer Bewegungsmonitor kann auch zur Menüauswahl auf dem Display verwendet werden. Der Drehgeber hat zwei Ausgänge, damit er zwischen negativer (CW) und positiver (CCW) Drehung unterscheiden kann und hat auch eine einzige Taste.
Schritt 1: Impulsfluss des Drehgebers
Der vom folgenden Drehgeber erzeugte Impulsfluss ist wie im Bild oben.
Schritt 2: Pinbelegung des Drehgebers
Erläuterung:
- GND GND
- + +5V
- SW-Taste des Drehgebers, wenn gedrückt
- DT-Daten
- CLK-Daten 2
Einer der DT- oder CLK-Pins muss mit dem Interrupt-Fuß von Arduino Uno verbunden sein, oder sowohl DT als auch CLK sind mit dem Interrupt-Pin verbunden.
Schritt 3: Schaltplan
- GND zu GND Arduino Uno
- + bis +5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Schritt 4: Code
Im folgenden Tutorial wird PIN 2 von Arduino Uno als Interrupt verwendet, während PIN 3 nur als regulärer Eingang verwendet wird.
#define Encoder0PinA 2#define Encoder0PinB 3 #Define Encoder0Btn 4 int Encoder0Pos = 0; Void setup () { Serial.begin (9600); pinMode (encoder0PinA, INPUT_PULLUP); pinMode (encoder0PinB, INPUT_PULLUP); pinMode (encoder0Btn, INPUT_PULLUP); attachInterrupt(0, doEncoder, CHANGE); } int valRotary, lastValRotary; Void Schleife () { Int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (" "); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } if(valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println(" "); Verzögerung (250); aufrechtzuerhalten. Void doEncoder () { if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) { Encoder0Pos ++; aufrechtzuerhalten. Sonst { Encoder0Pos--; } valRotary = Encoder0Pos/2.5; }
In Zeile 10 der obigen Skizze wird der Interrupt von Pin 2 Arduino Uno aktiviert. In der Funktion "doEncoder" wird aus dem Drehgeber berechnet. Wenn der Wert von DT und CLK (Pin-Interrupt von Arduino Uno) gleich ist, wird die Variable "encoder0Pos" inkrementiert / hinzugefügt, zusätzlich zu dieser Bedingung wird die Variable "encoder0Pos" dekrementiert.
Schritt 5: Erklärung
Der ValRotary-Wert ist der Wert der Anzahl der Schritte, die ausgeführt wurden. Der ValRotary-Wert wird aus dem Messwert des Drehsensor-Encoders geteilt durch 2,5 erhalten. Aus dem Test ergibt sich ein Wert von 2,5, da ein Schritt des Drehgebers 1 überschreiten kann, also dividiere durch 2,5 für seinen Wert entsprechend dem pro Schritt und auch der Addition der Leseverzögerung.
Während auf Zeile 19 - 25 ein Programm steht, um festzustellen, ob der Drehgeber CW oder CCW ist. Die Erläuterung der Zeilen 19 - 25 ist, wenn die aktuelle Drehcodierer-Auslesung größer ist als die vorherigen Drehdaten, die dann als CW ausgedrückt werden. Ist der aktuelle Messwert hingegen kleiner als der vorherige Messwert, wird er als CCW angegeben.
Schritt 6: Ausgabe
1 = der Startknopfwert des Rotary, wenn es nicht gedrückt wurde
Empfohlen:
Löten von oberflächenmontierbaren Komponenten - Lötgrundlagen: 9 Schritte (mit Bildern)
Löten von oberflächenmontierbaren Komponenten | Lötgrundlagen: Bisher habe ich in meiner Lötgrundlagen-Serie genug Grundlagen zum Löten besprochen, damit Sie mit dem Üben beginnen können. In diesem Instructable, was ich besprechen werde, ist etwas fortgeschrittener, aber es sind einige der Grundlagen zum Löten von Surface Mount Compo
Durchlöten von Komponenten - Lötgrundlagen: 8 Schritte (mit Bildern)
Löten von Durchgangslochkomponenten | Lötgrundlagen: In diesem Instructable werde ich einige Grundlagen zum Löten von Durchgangslochkomponenten auf Leiterplatten diskutieren. Ich gehe davon aus, dass Sie bereits die ersten 2 Instructables für meine Lötgrundlagen-Serie ausgecheckt haben. Wenn Sie nicht in meinem In
Eine Modifikation des linkshändigen DSLR-Halters von Bertus52x11. (mit zusätzlichem Mundgriff): 4 Schritte
Eine Modifikation des linkshändigen DSLR-Halters von Bertus52x11. (mit Added Mouth Grip): Also heute früher hat bertus52x11 die klügste Idee gepostet. Richtet sich an Menschen, die nur ihren linken Arm benutzen können - dauerhaft oder vorübergehend. Seine ursprüngliche Idee war es, am Stativanschluss darunter einen Daumenhaken anzubringen, mit dem die Kamera gehalten werden kann
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A
Arduino ProtoShield von "Haushalt" Artikel (<5$): 9 Schritte (mit Bildern)
Arduino ProtoShield von "Haushalt" Artikel (<5$): Ich liebe mein Arduino. Es hat mich in die Mikrocontroller-Programmierung hineingezogen und daran gefesselt. Ich mag auch die Erweiterbarkeit, die Schilde bieten. Mein Arduino kann eine Minute lang ein GPS-Locator sein und in der nächsten mit dem Internet verbunden sein. Es gibt auch ein Kit, mit dem Sie m