A KY-040 forgó kódoló egy mechanikus eszköz, amelyet a szög helyzet vagy a forgás mérésére használnak. Általában a kötetvezérlőkben, a menü navigációjában és a robotika helyzetkövetésében használják. Ez az oktatóanyag vezeti a KY-040 Rotary kódoló csatlakoztatását és használatát az Arduino-val.
Mire lesz szüksége
- KY-040 Rotary kódoló modul
- Arduino Board (például Uno, Mega, Nano)
- Kenyérlemez és jumper vezetékek
- Egy számítógép, amelyen az Arduino IDE telepített
1. lépés: A KY-040 forgó kódoló megértése
A KY-040 kódoló egy forgó tárcsából áll, amely impulzusokat generál, amikor elforgatják. Ez magában foglalja a beépített nyomógombot is.
KY-040 Pinout
Csap | Funkció |
---|---|
GND | Föld |
+ | Tápegység (5V) |
Loghinta | Óraimpulzusjel |
DT | Adatimpulzusjel |
SW | Nyomógomb jel |
2. lépés: A KY-040 vezetékesítése Arduino-ra
Így csatlakoztathatja a KY-040-et egy Arduino Uno-hoz:
KY-040 PIN | Arduino Pin |
---|---|
GND | GND |
+ | 5 V -os |
Loghinta | 2. érintkező |
DT | 3. érintkező |
SW | 4. érintkező |
3. lépés: Töltse fel a kódot
A következő példakód a forgó kódoló forgását olvassa el, és a gombnyomásokat észlel:
#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
}
}
4. lépés: Tesztelje a beállítást
- Csatlakoztassa az Arduino -t a számítógépéhez USB -n keresztül.
- Nyissa meg az Arduino IDE -t, és válassza ki a megfelelőt Bizottság és Kikötő a Szerszámok menü.
- Töltse fel a kódot kattintással Feltöltés.
- Nyissa meg a soros monitort (Szerszámok > Soros monitor) és állítsa be az adatátviteli sebességet
9600
. - Forgassa el a kódolót, és nyomja meg a gombot. Vegye figyelembe a számlálót és a gombnyomású üzeneteket a soros monitorban.
A KY-040 Rotary kódoló alkalmazásai
- Hangerő- vagy fényerő -szabályozás
- Menü navigáció
- Motorhelyzet -követés
- Robotika és automatizálási rendszerek
Hibaelhárítás
- Nincs forgás észlelése: Ellenőrizze a CLK és a DT vezetékeket, és győződjön meg arról, hogy a csapok megfelelnek a kódnak.
- Instabil olvasmányok: Adjon hozzá egy kis debound késleltetést a kódoló jelek stabilizálásához.
-
A gombot nem észlelték: Ellenőrizze, hogy az SW tű megfelelően csatlakozik -e és használja
INPUT_PULLUP
mód.
Következtetés
Sikeresen összekapcsolja a KY-040 Rotary kódolót az Arduino-val. Ez a sokoldalú modul lehetővé teszi a forgáskövetés és a gomb funkcionalitásának hozzáadását a projektekhez. Kísérletezzen vele különböző alkalmazásokban, például egyéni vezérlők felépítését vagy a menük navigálását a rendszerekben!