
Rotary encoder adalah sensor yang digunakan untuk mendeteksi gerakan rotasi atau perubahan posisi sudut sebuah poros. Sensor ini sering digunakan dalam aplikasi seperti kontrol volume, navigasi menu, atau sistem robotika untuk membaca posisi atau kecepatan rotasi.
Dalam panduan ini, kita akan membahas cara kerja rotary encoder, cara menghubungkannya dengan Arduino, dan membuat program sederhana untuk membaca sinyal dari rotary encoder.
Cara Kerja Rotary Encoder
Rotary encoder menghasilkan pulsa sinyal digital (HIGH atau LOW) pada dua pin outputnya, A dan B. Dengan membaca urutan pulsa dari kedua pin ini, kita dapat menentukan arah rotasi (searah jarum jam atau berlawanan). Rotary encoder juga memiliki tombol tekan untuk fungsi tambahan.
Judul: “Panduan Lengkap Menggunakan Rotary Encoder dengan Arduino untuk Kontrol Akurat”
Pendahuluan
Rotary encoder adalah sensor yang digunakan untuk mendeteksi gerakan rotasi atau perubahan posisi sudut sebuah poros. Sensor ini sering digunakan dalam aplikasi seperti kontrol volume, navigasi menu, atau sistem robotika untuk membaca posisi atau kecepatan rotasi.
Dalam panduan ini, kita akan membahas cara kerja rotary encoder, cara menghubungkannya dengan Arduino, dan membuat program sederhana untuk membaca sinyal dari rotary encoder.
Alat dan Bahan
- Arduino Uno.
- Rotary encoder (misalnya KY-040).
- Kabel jumper.
- Breadboard (opsional).
- Software Arduino IDE.
Cara Kerja Rotary Encoder
Rotary encoder menghasilkan pulsa sinyal digital (HIGH atau LOW) pada dua pin outputnya, A dan B. Dengan membaca urutan pulsa dari kedua pin ini, kita dapat menentukan arah rotasi (searah jarum jam atau berlawanan). Rotary encoder juga memiliki tombol tekan untuk fungsi tambahan.
Koneksi Rotary Encoder dengan Arduino
Pin Rotary Encoder (KY-040)
- CLK: Pin keluaran utama A (sinyal pulsa).
- DT: Pin keluaran utama B (sinyal pulsa).
- SW: Pin tombol tekan.
- VCC: Sambungkan ke 5V Arduino.
- GND: Sambungkan ke GND Arduino.
Diagram Koneksi
- CLK โ Pin 2 Arduino.
- DT โ Pin 3 Arduino.
- SW โ Pin 4 Arduino (opsional, jika ingin menggunakan tombol).
- VCC โ 5V Arduino.
- GND โ GND Arduino.
berikut merupakan gambar skematiknya:

Untuk Kode Yang Kami Gunakan :
#include <Arduino.h>
const int CLKPin_rotary = 2;
const int DTNPin_rotary = 3;
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;
} else {
nilai = 1;
}
}
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);
}
}
Selamat Mencoba!!
Semoga Berhasil!!
Kalau teman-teman berminat jasa bisa wa kami di kontak whatsapp dibawah ini atau bisa cek tiktok kami disini : @labrobotika
