Membuat Menu Sederhana dengan Rotary Encoder + LCD

Indobot Academy

Menu Sederhana dengan Rotary Encoder + LCD
Cara Membuat Menu Sederhana dengan Rotary Encoder + LCD

LCD atau Liquid Crystal Display dapat digunakan untuk menampilkan tampilkan yang kita inginkan, selain itu kita juga dapat membuat menu untuk mangatur suatu alat. Kali ini kita akan membuat menu sederhana dengan kendali rotary encoder.

[lwptoc numeration=”none” title=”Daftar Isi”]

[membership level=”0,1,2,4″]

Membuat Menu Sederhana dengan Rotary Encoder + LCD

1. Alat / Bahan

  • Arduino IDE                                     Download
  • Library: LiquidCrystal_I2C               Download
  • Arduino UNO                                   1 Buah
  • LCD                                                 1 Buah
  • I2C                                                   1 Buah
  • Rotary Encoder                                1 Buah
  • LED                                                  2 Buah
  • Resistor 220 ohm                             2 Buah
  • Project Board                                   1 Buah
  • Kabel Jumper                                  Secukupnya

Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.

Baca Juga Cara Membaca Input dari Rotary Encoder

2. Skema Rangkaian

Gambar Rangkaian Membuat Menu Sederhana dengan Rotary Encoder + LCD

Gambar Rangkaian Membuat Menu Sederhana dengan Rotary Encoder + LCD

Keterangan:

  • 5V – VCC I2C, VCC Rotary Encoder
  • GND – GND I2C, GND Rotary Encoder
  • D8 – SW
  • D7 –DT
  • D6 –CLK
  • D8 – Kaki resistor 1
  • D9 – Kaki resistor 2
  • Kaki resistor 1 – Anoda LED 1
  • Kaki resistor 2 – Anoda LED 2

[/membership]

3. Langkah Kerja

  1. Pertama Siapkan alat dan bahan yang akan di gunakan
  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 Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library 
  5. Setelah itu Ketikkan sketch program pada halaman Arduino IDE
  6. Selanjutnya Masukan alamat I2C LCD pada sketch program, untuk mengetahui alamat I2C pelajari materi berikut:
    Mencari Tahu Alamat I2C Pada Modul I2C
  7. Kemudian Untuk memahami cara kerja program Rotari Encoder pelajari materi berikut:
    Membaca Input Dari Rotary Encoder
  8. Setelah itu Untuk memahami dasar pembuatan menu pelajari materi berikut:
    Membuat Tampilan Menu Pada LCD Dengan Push Button
  9. Segera Lakukan proses uploading program

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Segera Daftar sekarang dan dapatkan PROMO

 

4. Sketch Program

 

 
/* Program Membuat Menu Sederhana dengan Rotary Encoder + LCD di buat oleh Indobot */

#include <LiquidCrystal_I2C.h>      //Library LCD I2C
LiquidCrystal_I2C lcd(0x27,16,2);   //Alamat I2C

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

#define led1 9        //LED 1 pada pin D9
#define led2 10

bool LED1 = false;    //Variabel kondisi LED 1
bool LED2 = false;

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

void setup() { 
  lcd.init ();                      //Mulai LCD
  lcd.setBacklight(HIGH);           //Nyalakan backlight
  
  pinMode (outputA,INPUT_PULLUP);   //Setting sebagai input pullup
  pinMode (outputB,INPUT_PULLUP);
  pinMode (button,INPUT_PULLUP);

  pinMode(led1, OUTPUT);            //Setting LED sebagai output
  pinMode(led2, OUTPUT);
  
  Serial.begin (9600);              //Mulai komunikasi serial
  aLastState = digitalRead(outputA);   

  //---------------Tampilan Awal---------------//
  lcd.setCursor(1,0);
  lcd.print("LED 1 = OFF");
  lcd.setCursor(1,1);
  lcd.print("LED 2 = OFF");
} 
void loop() { 
  //---------------Kondisi 1---------------//
  set1:
  baca_rotary();                      //Prosedur baca rotary
  lcd.setCursor(0,0);
  lcd.print(">");
  lcd.setCursor(0,1);
  lcd.print(" ");
  if(counter == 2 || counter == -2){  //Jika kondisi berubah, maka
    counter = 0;
    goto set2;                        //Lompat ke kondisi 2
  }
  else if(digitalRead(button) == LOW){  //Jika tombol ditekan, maka
    delay(200);
    cek_led1();                         //Jalankan prosedur cek LED
    goto set1;
  }
  else{goto set1;}

  //---------------Kondisi 2---------------//
  set2:
  baca_rotary();
  lcd.setCursor(0,0);
  lcd.print(" ");
  lcd.setCursor(0,1);
  lcd.print(">");
  if(counter == 2 || counter == -2){
    counter = 0;
    goto set1;
  }
  else if(digitalRead(button) == LOW){
    delay(200);
    cek_led2();
    goto set2;
  }
  else{goto set2;}
}

void baca_rotary(){                         //Prosedur baca rotary
  aState = digitalRead(outputA);
  if (aState != aLastState){     
    if (digitalRead(outputB) != aState) { 
      counter++;
    } else {
      counter--;
    }
  } 
  aLastState = aState;
}

void cek_led1(){                //Prosedur cek LED 1
  if(LED1 == false){            //Jika LED mati, maka
    digitalWrite(led1, HIGH);   //Menyalakan LED
    lcd.setCursor(9,0);
    lcd.print("ON ");
    LED1 = true;
  }
  else{                         //Jika LED hidup, maka
    digitalWrite(led1, LOW);    //Mematikan LED
    lcd.setCursor(9,0);
    lcd.print("OFF");
    LED1 = false;
  }
}

void cek_led2(){
  if(LED2 == false){
    digitalWrite(led2, HIGH);
    lcd.setCursor(9,1);
    lcd.print("ON ");
    LED2 = true;
  }
  else{
    digitalWrite(led2, LOW);
    lcd.setCursor(9,1);
    lcd.print("OFF");
    LED2 = false;
  }
}

Kesimpulannya:

Kesimpulannya Program bekerja dengan menampilkan display pada layar lcd. Display yang tertampil pada lcd sesuai dengan program yaitu “LED 1 = OFF” dan “LED 2 = OFF”. Kemudian kita coba untuk meyalakan lampu led, putar rotary encoder untuk memilih lampu mana yang akan di nyalakan, jika sudah kemudian tekan rotary encoder untuk menayalakan lampu.

[/membership]

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Segera Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

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

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp