Der KY-040-Rotary-Encoder ist ein mechanisches Gerät, das zur Messung der Winkelposition oder Drehung verwendet wird. Es wird üblicherweise in Volumensteuerungen, Menünavigation und Positionsverfolgung in Robotik verwendet. In diesem Tutorial führen Sie die Verbindung und verwenden Sie den KY-040-Rotary-Encoder mit Arduino.
Was Sie brauchen werden
- KY-040 Rotary Encoder-Modul
- Arduino Board (z. B. Uno, Mega, Nano)
- Breadboard- und Jumper -Drähte
- Ein Computer mit der Arduino -IDE installiert
Schritt 1: Verständnis des KY-040 Rotary Encoders
Der KY-040-Encoder besteht aus einem Drehschalter, das beim Drehen von Impulsen erzeugt. Es enthält auch einen integrierten Druckknopf.
KY-040 Pinout
Stift | Funktion |
---|---|
GND | Boden |
+ | Stromversorgung (5 V) |
Clk | Taktpulssignal |
Dt | Datenimpulssignal |
SW | Druckknopfsignal |
Schritt 2: Verkabelung des KY-040 mit Arduino
So verbinden Sie den KY-040 mit einem Arduino Uno:
KY-040 Pin | Arduino Pin |
---|---|
GND | GND |
+ | 5v |
Clk | Pin 2 |
Dt | Pin 3 |
SW | Pin 4 |
Schritt 3: Laden Sie den Code hoch hoch
Der folgende Beispielcode liest die Drehung des Rotary Encoders und erkennt die Taste der Taste:
#define CLK 2 // Clock pin
#define DT 3 // Data pin
#define SW 4 // Switch pin
int counter = 0; // Counter to track rotation
int currentStateCLK;
int lastStateCLK;
void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP); // Internal pull-up for the button
Serial.begin(9600);
// Read the initial state of the CLK pin
lastStateCLK = digitalRead(CLK);
Serial.println("KY-040 Rotary Encoder Test");
}
void loop() {
// Read the current state of the CLK pin
currentStateCLK = digitalRead(CLK);
// If the state has changed, the encoder has rotated
if (currentStateCLK != lastStateCLK) {
// Check the DT pin to determine the rotation direction
if (digitalRead(DT) != currentStateCLK) {
counter++;
} else {
counter--;
}
Serial.print("Counter: ");
Serial.println(counter);
}
// Save the last state of CLK
lastStateCLK = currentStateCLK;
// Check if the button is pressed
if (digitalRead(SW) == LOW) {
Serial.println("Button pressed!");
delay(200); // Debounce delay
}
}
Schritt 4: Testen Sie das Setup
- Schließen Sie den Arduino über USB an Ihren Computer an.
- Öffnen Sie die Arduino -IDE und wählen Sie die richtige Auswahl Planke Und Hafen unter dem Werkzeuge Speisekarte.
- Laden Sie den Code durch Klicken hoch Hochladen.
- Öffnen Sie den Serienmonitor (Werkzeuge > Serienmonitor) und den Baudrate auf festlegen
9600
. - Drehen Sie den Encoder und drücken Sie die Taste. Beobachten Sie den Zähler und die Taste drücken Sie Nachrichten im seriellen Monitor.
Anwendungen des KY-040 Rotary Encoders
- Lautstärke- oder Helligkeitskontrolle
- Menünavigation
- Motorpositionsverfolgung
- Robotik- und Automatisierungssysteme
Fehlerbehebung
- Keine Rotationserkennung: Überprüfen Sie die CLK- und DT -Verkabelung und stellen Sie sicher, dass die Pins mit dem Code übereinstimmen.
- Instabile Lesungen: Fügen Sie eine kleine Entlassung zu Verzögerung hinzu, um die Encoder -Signale zu stabilisieren.
-
Taste nicht erkannt: Überprüfen Sie, ob der SW -Pin ordnungsgemäß verbunden ist und verwendet
INPUT_PULLUP
Modus.
Abschluss
Sie haben den KY-040-Rotary-Encoder mit Arduino erfolgreich miteinander verbunden. Mit diesem vielseitigen Modul können Sie Ihren Projekten Rotationsverfolgung und Schaltflächenfunktionen hinzufügen. Experimentieren Sie damit in verschiedenen Anwendungen, z. B. in Ihren Systemen zu bauen oder Menüs zu navigieren!