Inhaltsverzeichnis:
- Schritt 1: Verständnis der Ausgabedaten
- Schritt 2: Bauen Sie die Schaltung auf
- Schritt 3: Schreiben des Codes
Video: Drehgeber - Verstehen und Verwenden (Arduino / other ΜController) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Ein Drehgeber ist ein elektromechanisches Gerät, das Drehbewegungen in digitale oder analoge Informationen umwandelt. Es kann im oder gegen den Uhrzeigersinn gedreht werden. Es gibt zwei Arten von Drehgebern: Absolute und relative (inkrementelle) Geber.
Während ein Absolutwertgeber einen zum aktuellen Wellenwinkel proportionalen Wert ausgibt, gibt ein Inkrementalgeber den Schritt der Welle und deren Richtung aus. (In diesem Fall haben wir einen Inkrementalgeber)
Drehgeber werden immer beliebter, weil Sie zwei Funktionen in einem Elektromodul nutzen können: Einen einfachen Schalter zum Bestätigen von Vorgängen und den Drehgeber zum Navigieren, z. B. durch ein Menü.
Ein inkrementaler Drehgeber erzeugt bei rotierender Welle zwei Ausgangssignale. Je nach Richtung führt eines der Signale das andere. (siehe unten)
Schritt 1: Verständnis der Ausgabedaten
Wie Sie sehen können, wenn die Encoderwelle beginnt, sich im Uhrzeigersinn zu drehen, fällt Ausgang A zuerst auf LOW und Ausgang B folgt ihm. Gegen den Uhrzeigersinn dreht sich der Vorgang entgegengesetzt.
Jetzt müssen wir dies nur noch auf unserem µController implementieren (ich habe einen Arduino Nano verwendet).
Schritt 2: Bauen Sie die Schaltung auf
Wie ich bereits beschrieben habe, erzeugen die Ausgänge eine HIGH- und eine LOW-Flanke. Um ein sauberes HIGH an den Datenpins A und B des µControllers zu erhalten, müssen wir Pull-Up-Widerstände hinzufügen. Der gemeinsame Pin C geht für die LOW-Flanke direkt auf Masse.
Um Informationen über den internen Schalter (Taster) zu erhalten, verwenden wir die anderen beiden Pins. Einer davon geht an VCC und der andere an einen Daten-Pin des µControllers. Wir müssen auch einen Pull-Down-Widerstand zum Datenpin hinzufügen, um ein sauberes LOW zu erhalten.
Es ist auch möglich, interne Pull-Up- und Pull-Down-Widerstände Ihres µControllers zu verwenden!
In meinem Fall sieht die Pinbelegung so aus:
- +3, 3V => +3, 3V (Arduino)(auch +5V möglich)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Stift
11
- C => GND
-
SW =>
Stift
12
Schritt 3: Schreiben des Codes
int pinA = 10; // interner Schalter A Int PinB = 11; // interner Schalter B int pinSW = 12; // Schalter (Encoder gedrückt) Int EncoderPosCount = 0; // beginnt bei null, ändere wenn du willst
int Positionswert;
bool Schaltwert; int mrotateLast; int mrotate;
Leere Einrichtung () {
int mrotateLast = digitalRead (pinA); Serieller Anfang (9600); Verzögerung (50); }
Void Schleife () {Readencoder (); if (readswitch () == 1) {Serial.println ("Switch = 1"); } }
int-Readencoder (){
mrotate = digitalRead (pinA); if (mrotate != mrotateLast) { // Drehknopf dreht sich if (digitalRead (pinB) != mrotate) { // Schalter A zuerst geändert -> im Uhrzeigersinn drehen EncoderPosCount ++; Serial.println ("im Uhrzeigersinn gedreht"); } Else {// Schalter B zuerst geändert -> gegen den Uhrzeigersinn drehen EncoderPosCount--; Serial.println ("gegen den Uhrzeigersinn gedreht"); }
Serial.print ("Encoder-Position: "); Serial.println (encoderPosCount); Serial.println(""); } mrotateLast = mrotate; Rückgabe EncoderPosCount; } bool readswitch(){
if (digitalRead (pinSW)! = 0) {// Schalter ist gedrückt
Während (digitalRead (pinSW)! = 0) {} // Schalter ist derzeit gedrückt switchval = 1; aufrechtzuerhalten. Sonst {switchval = 0;} // Schalter ist nicht gedrückt Return switchval; }
Jetzt können Sie den Encoder drehen und die Variable encoderPosCount zählt aufwärts, wenn Sie im Uhrzeigersinn drehen, und rückwärts, wenn Sie gegen den Uhrzeigersinn drehen.
Das ist es! Einfach und nützlich.
Fühlen Sie sich frei, den Code zu ändern und auszuführen. Sie können es in Ihrem Projekt implementieren.
Ich werde auch ein LED-Projekt hochladen, bei dem ich den Encoder verwendet habe, um die Helligkeit meiner LEDs einzustellen.
Empfohlen:
So richten Sie einen Raspberry Pi ein und verwenden ihn – wikiHow
So richten Sie einen Raspberry Pi ein und verwenden ihn: Für die Leser der Zukunft sind wir im Jahr 2020. Das Jahr, in dem Sie, wenn Sie das Glück haben, gesund zu sein und nicht mit Covid-19 infiziert sind, plötzlich , hat viel mehr Freizeit, als du dir jemals vorgestellt hast. Wie kann ich mich also nicht zu dumm beschäftigen? Oh ja
So verwenden Sie Fritzing, um eine Leiterplatte zu erstellen – wikiHow
So verwenden Sie Fritzing, um eine Leiterplatte herzustellen: In diesem Instructable zeige ich Ihnen, wie Sie Fritzing verwenden. In diesem Beispiel werde ich einen Energieschild für Arduino erstellen, mit dem das Arduino mit einer Batterie mit Strom versorgt werden kann
Verwenden eines STM32 wie ein Arduino-Tutorial - STM32F103C8: 5 Schritte
Verwenden eines STM32 wie ein Arduino-Tutorial | STM32F103C8: Hey, was ist los, Leute! Akarsh hier von CETech. Im folgenden Tutorial werden wir uns die verschiedenen von STM angebotenen Mikrocontroller wie den STM32F103C8, STM32F030F4 und STM8S103F3 ansehen. Wir werden diese Mikros miteinander vergleichen, zusammen mit
So verdrahten und verwenden Sie den Lichtsensor GY-30 BH1750 (GY30 / GY302) – Einfach – Arduino-Projekt
So verdrahten und verwenden Sie den Lichtsensor GY-30 BH1750 (GY30 / GY302) - Einfach - Arduino-Projekt!: In diesem Tutorial erfahren Sie, wie Sie den Lichtintensitätssensor GY-30 BH1750 schnell und einfach mit Arduino verwenden
SO VERWENDEN SIE EINEN VIBRATIONSSENSOR - VISUINO TUTORIAL MIT ARDUINO: 6 Schritte
SO VERWENDEN SIE EINEN VIBRATIONSSENSOR - VISUINO TUTORIAL MIT ARDUINO: In diesem Tutorial verwenden wir Vibrationssensor, LED, Summer, Widerstand, Arduino Uno und Visuino, um einen Piepton zu erzeugen, wenn Vibrationen erkannt werden. Sehen Sie sich ein Demonstrationsvideo an