Baca Putaran Rotary Encoder KY-040 Arduino

Baca Putaran Rotary Encoder KY-040 Arduino

Pelajari cara membaca arah dan jumlah putaran Rotary Encoder KY-040 menggunakan Arduino Uno. Termasuk wiring diagram dan kode program lengkap.

Rotary Encoder KY-040 merupakan sensor input putaran (knob) yang umum digunakan sebagai pengganti potensiometer atau kontrol volume. Berbeda dengan potensiometer, rotary encoder dapat diputar tak terbatas ke kanan dan kiri, serta mampu mendeteksi arah dan jumlah putaran.

Alat dan Bahan

KomponenJumlahKeterangan
Arduino Uno1Mikrokontroler utama
Rotary Encoder KY-0401Sensor putaran dengan push button
Kabel jumper4Koneksi ke pin CLK, DT, GND, VCC

Wiring Diagram KY-040 ke Arduino Uno

Ikuti sesuai petunjuk foto wiring di atas.

Kode Program Membaca Arah Putaran KY-040

#include <Arduino.h>

const int CLKPin_rotary = A0;
const int DTNPin_rotary = A1;
int CLKState_rotary;
int lastCLKState_rotary = LOW;

int baca_rotary() {
  CLKState_rotary = digitalRead(CLKPin_rotary);
  int nilai = 0;
  if (CLKState_rotary != lastCLKState_rotary) {
    if (digitalRead(DTNPin_rotary) != CLKState_rotary) {
      nilai = -1; // putar ke kiri
    } else {
      nilai = 1;  // putar ke kanan
    }
  }
  lastCLKState_rotary = CLKState_rotary;
  return nilai;
}

void setup() {
  Serial.begin(9600);
  pinMode(CLKPin_rotary, INPUT);
  pinMode(DTNPin_rotary, INPUT);
}

void loop() {
  int nilai = baca_rotary();
  if (nilai != 0) {
    Serial.print("Perubahan nilai: ");
    Serial.println(nilai);
  }
}

Penjelasan Program

  • Pin CLK (Clock) dan DT (Data) digunakan untuk mendeteksi arah putaran.
  • Fungsi baca_rotary() membandingkan perubahan CLK dan DT untuk menentukan apakah diputar searah jarum jam atau berlawanan arah jarum jam.
  • Nilai +1 untuk searah, -1 untuk berlawanan arah.

Langkah Pengujian

  1. Rakit komponen sesuai diagram wiring.
  2. Upload kode ke Arduino Uno.
  3. Buka Serial Monitor (baudrate 9600).
  4. Putar knob dan lihat output nilai +1 atau -1 sesuai arah putaran.

Referensi dan Datasheet

Kesimpulan

Sensor Rotary Encoder KY-040 cocok digunakan sebagai input navigasi menu, pemilih nilai, atau pengontrol volume. Dengan Arduino Uno, penggunaannya sangat mudah dan tidak membutuhkan library tambahan. Kamu juga dapat menambahkan pembacaan tombol tekan (SW) jika dibutuhkan di proyek selanjutnya.

Diskusi lebih lanjut kontak di bawah :

Media sosial lainnya :

Baca juga :

Sensor Getar SW-18010P dengan Arduino Uno

Kontrol Arah dengan Joystick KY-023 dan Arduino Uno