Koder obrotowy KY-040 to urządzenie mechaniczne używane do pomiaru położenia lub obrotu kątowego. Jest powszechnie używany w elementach sterujących woluminów, nawigacji menu i śledzeniu pozycji w robotyce. Ten samouczek poprowadzi Cię przez połączenie i użycie enkodera obrotowego KY-040 z Arduino.
Czego będziesz potrzebować
- KY-040 Moduł enkodera obrotowego
- Arduino Board (np. UNO, Mega, Nano)
- Druty chleba i skoczków
- Komputer z zainstalowanym Arduino IDE
Krok 1: Zrozumienie enkodera obrotowego KY-040
En enkoder KY-040 składa się z obrotowego pokrętła, który generuje impulsy po obróceniu. Zawiera także wbudowany przycisk.
KY-040 Pinout
Szpilka | Funkcjonować |
---|---|
GND | Grunt |
+ | Zasilacz (5 V) |
Clk | Sygnał impulsu zegara |
Dt | Sygnał impulsu danych |
SW | Sygnał przycisku |
Krok 2: Okablowanie KY-040 do Arduino
Oto jak połączyć KY-040 z Arduino Uno:
Pin KY-040 | PIN Arduino |
---|---|
GND | GND |
+ | 5v |
Clk | Pin 2 |
Dt | Pin 3 |
SW | Pin 4 |
Krok 3: Prześlij kod
Poniższy przykład odczytuje obrót Rotary Encoder i wykrywa przycisk naciska:
#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
}
}
Krok 4: Przetestuj konfigurację
- Podłącz Arduino do komputera za pomocą USB.
- Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
- Prześlij kod, klikając Wgrywać.
- Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na
9600
. - Obróć enkoder i naciśnij przycisk. Obserwuj licznik i przycisk Naciśnij wiadomości w monitor szeregowych.
Zastosowania enkodera obrotowego KY-040
- Kontrola objętości lub jasności
- Nawigacja menu
- Śledzenie pozycji silnika
- Systemy robotyki i automatyzacji
Rozwiązywanie problemów
- Brak wykrywania rotacji: Sprawdź okablowanie CLK i DT i upewnij się, że piny pasują do kodu.
- Niestabilne odczyty: Dodaj niewielkie opóźnienie debuna, aby ustabilizować sygnały enkodera.
-
Przycisk nie wykryty: Sprawdź, czy styk SW jest odpowiednio podłączony i używa
INPUT_PULLUP
tryb.
Wniosek
Z powodzeniem połączyłeś enkoder obrotowy KY-040 z Arduino. Ten wszechstronny moduł umożliwia dodawanie funkcji śledzenia rotacji i przycisku do swoich projektów. Eksperymentuj z nim w różnych aplikacjach, takich jak budowanie niestandardowych elementów sterujących lub nawigacja w systemach!