Encoder rotary KY-040 adalah perangkat mekanis yang digunakan untuk mengukur posisi atau rotasi sudut. Ini biasanya digunakan dalam kontrol volume, navigasi menu, dan pelacakan posisi dalam robotika. Tutorial ini akan memandu Anda melalui penghubung dan menggunakan rotary encoder KY-040 dengan Arduino.
Apa yang Anda Butuhkan
- Modul Encoder Rotary KY-040
- Dewan Arduino (mis., Uno, mega, nano)
- Papan tempat memotong papan dan kabel jumper
- Komputer dengan IDE Arduino diinstal
Langkah 1: Memahami Encoder Rotary KY-040
Encoder KY-040 terdiri dari putaran putar yang menghasilkan pulsa saat diputar. Ini juga termasuk tombol tekan bawaan.
KY-040 Pinout
Pin | Fungsi |
---|---|
Gnd | Tanah |
+ | Catu daya (5V) |
Clk | Sinyal denyut nadi jam |
Dt | Sinyal pulsa data |
Sw | Sinyal tombol tekan |
Langkah 2: Kabel KY-040 ke Arduino
Inilah cara menghubungkan KY-040 ke Arduino UNO:
Pin KY-040 | Pin Arduino |
---|---|
Gnd | Gnd |
+ | 5v |
Clk | Pin 2 |
Dt | Pin 3 |
Sw | Pin 4 |
Langkah 3: Unggah kode
Contoh kode berikut membaca rotasi rotary encoder dan mendeteksi tombol tekan:
#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
}
}
Langkah 4: Uji pengaturan
- Hubungkan Arduino ke komputer Anda melalui USB.
- Buka IDE Arduino dan pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
- Unggah kode dengan mengklik Mengunggah.
- Buka monitor serial (Peralatan > Monitor serial) dan atur baud rate ke
9600
. - Putar enkoder dan tekan tombol. Amati konter dan tekan tombol pesan di monitor serial.
Aplikasi Encoder Rotary KY-040
- Kontrol volume atau kecerahan
- Navigasi menu
- Pelacakan posisi motor
- Sistem robotika dan otomatisasi
Pemecahan masalah
- Tidak ada deteksi rotasi: Periksa kabel CLK dan DT dan pastikan pin cocok dengan kode.
- Bacaan yang tidak stabil: Tambahkan penundaan debounce kecil untuk menstabilkan sinyal encoder.
-
Tombol tidak terdeteksi: Verifikasi pin SW terhubung dan penggunaan dengan benar
INPUT_PULLUP
mode.
Kesimpulan
Anda telah berhasil menghubungkan encoder rotary KY-040 dengan Arduino. Modul serbaguna ini memungkinkan Anda untuk menambahkan pelacakan rotasi dan fungsionalitas tombol ke proyek Anda. Eksperimen dengan itu dalam aplikasi yang berbeda, seperti membangun kontrol khusus atau menavigasi menu di sistem Anda!