Rotary Encoder : Cara Membaca Input dengan Arduino IDE

Indobot Academy

Encoder rotary, atau disebut shaft encoder, adalah perangkat elektro-mekanik yang mengubah posisi sudut atau gerakan poros atau poros ke sinyal output analog atau digital. Retary encoder dapat diaplikasikan sebagai kenali untuk memilih sebuah menu atau mengatur suatu menu, untuk dapat menggunakan rotary encoder sebelumnya kita perlu mengetahui cara membaca input dari rotary encoder.

Jenis-jenis encoder rotary:

  1. Encoder inkremental:

    • Menghasilkan serangkaian pulsa saat poros berputar.
    • Menghitung pulsa untuk menentukan posisi dan kecepatan relatif.
    • Tidak dapat menentukan posisi absolut tanpa titik referensi.
    • Di gunakan dalam aplikasi seperti kontrol motor, robotika, dan mesin CNC.
  2. Encoder absolut:

    • Memberikan kode digital unik untuk setiap posisi poros.
    • Melaporkan posisi absolut secara langsung, bahkan setelah mati listrik.
    • Di gunakan dalam aplikasi di mana penentuan posisi yang presisi sangat penting, seperti otomasi industri, perangkat medis, dan teleskop.

 

1. Alat / Bahan

  • Arduino IDE                                     Download
  • Arduino UNO                                   1 Buah
  • Rotary Encoder                               1 Buah
  • Project Board                                  1 Buah
  • Kabel Jumper                                  Secukupnya

Kemudian Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.

Baca Juga : Menambah Pin Arduino Uno dengan I2C PCF8574 IO Expander

2. Skema Rangkaian

Berikut Gambar Rangkaian Membaca Input Dari Rotary Encoder

Keterangan:

  • 5V – VCC Rotary Encoder
  • GND – GND Rotary Encoder
  • D8 – SW
  • D7 –DT
  • D6 –CLK

Baca Juga : Membaca Input Dari Rotary Encoder

3. Langkah Kerja

  1. PertamaSiapkan alat dan bahan
  2. Kedua Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian di atas
  3. Ketiga Buka software Arduino IDE yang telah terinstal pada laptop/komputer
  4. Kemudian Ketikkan sketch program pada halaman Arduino IDE
  5. Terakhir Lakukan proses uploading program

4. Sketch Program

 
/* Program Membaca Input Dari Rotary Encoder dibuat oleh Indobot */

#define outputA 6     //CLK pada pin D6
#define outputB 7     //DT pada pin D7
#define button 8      //SW pada pin D8

int counter = 0;      //Variabel penghitung nilai
int aState;           //Variabel kondisi
int aLastState;       //Variabel kondisi terakhir

void setup() { 
  pinMode (outputA,INPUT_PULLUP); //Sertting sebagai input pullup
  pinMode (outputB,INPUT_PULLUP);
  pinMode (button,INPUT_PULLUP);
    
  Serial.begin (9600);                //Mulai komunikasi serial
  aLastState = digitalRead(outputA);  //Baca kondisi terakhir CLK
} 
void loop() { 
  aState = digitalRead(outputA);          //Baca kondisi CLK
  if (aState != aLastState){              //Jika ada perubahan kondisi, maka
    if (digitalRead(outputB) != aState) { //Jika berputar ke kiri, maka
      counter ++;                         //Nilai bertambah
    } else {                              //Jika berputar ke kanan, maka
      counter --;                         //Nilai berkurang
    }
    Serial.print("Position: ");
    Serial.println(counter);              //Tampilkan nilai
  } 
  aLastState = aState;                    //Rekam kondisi

  if(digitalRead(button) == LOW){         //Jika tombol ditekan, maka
    Serial.println("Button pressed");     //Tampilkan text
    delay(200);                           //Jeda pembacaan 200ms
  }
}

Kesimpulan:

Program bekerja dengan menampilkan hasil putaran dari rotary encoder. Ketika rotary encoder di putar kekanan serial monitor kemudian akan menampilkan nilai input rotary encorder.

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp