baca juga : 10 Project Arduino paling populer
Bahan yang dibutuhkan :
1. Arduino UNO
2. LCD 2004
3. Tombol Push Button
4. Laptop atau PC
Skema rangkaian dpat dilihat pada gambar berikut :
|  | 
| Skema rangkaian | 
Tombol tersebut terdiri dari tombol menu, up, down, dan OK. Fungsi masing-masing tombol tersebut adalah :
- Menu : Tombol untuk masuk ke menu dari halaman utama
- UP : Tombol untuk menaikkan kursor
- Down : Tombol untuk Menurunkan kursor
- OK : Tombol untuk memilih menu
Rangkaian diatas menggunakan LCD 2004 dengan modul I2C dan Arduino UNO, untuk mengubah konfigurasi tinggal disesuaikan pada program. Listing program dapat dilihat dibawah :
////////////////////////andalanelektro.id////////////////////////////////////////
#include <LiquidCrystal.h>
const int rs = 12,rw = 1, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
int Menu,Up,Down,Ok;
int lockMenu=0,lockUp=0,lockDown=0,lockOk=0;
int dis,sub=0,mode=0;
LiquidCrystal lcd(rs, rw, en, d4, d5, d6, d7);
void setup()
{
  pinMode(A0, INPUT_PULLUP);// mengaktifkan resistor internal
  pinMode(A1, INPUT_PULLUP);
  pinMode(A2, INPUT_PULLUP);
  pinMode(A3, INPUT_PULLUP);
  
  lcd.begin(20, 4);
  
  lcd.setCursor(0,0); lcd.print("    Tutorial Menu   ");
  lcd.setCursor(0,1); lcd.print("         &          "); 
  lcd.setCursor(0,2); lcd.print("      Sub Menu      "); 
  lcd.setCursor(0,3); lcd.print(" andalanelektro.id  "); 
}
void loop() 
{
  Menu= digitalRead(A0);
  Up=   digitalRead(A1);
  Down= digitalRead(A2);
  Ok=   digitalRead(A3);
  tampil();
}
void tampil()
{
  if (Menu==0 && lockMenu==0){lockMenu=1;} if (Menu!=0 && lockMenu==1){lockMenu=0; dis=1;}
  if (Menu==0 && lockMenu==0){lockMenu=1;} if (Menu!=0 && lockMenu==1 && dis>1){lcd.clear(); lockMenu=0; dis=1;}
  
  if (dis==1)
  {
  
      // tampilan awal//
      lcd.setCursor(1,0); lcd.print("Menu 1             ");
      lcd.setCursor(1,1); lcd.print("Menu 2             "); 
      lcd.setCursor(1,2); lcd.print("Menu 3             "); 
      lcd.setCursor(1,3); lcd.print("Menu 4             "); 
      
      if (Down==0 && lockDown==0){lockDown=1;}  //turunkan Cursor ">"
      if (Down!=0 && lockDown==1){lcd.clear(); lockDown=0; mode++;} 
      
      if (Up==0 && lockUp==0){lockUp=1;}   //naikkan Cursor ">"
      if (Up!=0 && lockUp==1){lcd.clear(); lockUp=0; mode--;}
       switch (mode)
      {
        case 0 : lcd.setCursor(0,0); lcd.print(">"); break;
        case 1 : lcd.setCursor(0,1); lcd.print(">"); break;
        case 2 : lcd.setCursor(0,2); lcd.print(">"); break;
        case 3 : lcd.setCursor(0,3); lcd.print(">"); break;
      }  
      if (Ok==0 && lockOk==0){lockOk=1; mode=0;}
      if (Ok!=0 && lockOk==1 && mode==0){lockOk=0; dis=2; lcd.clear(); } // pilih menu 1
      if (Ok!=0 && lockOk==1 && mode==1){lockOk=0; dis=3; lcd.clear(); } // pilih menu 2
      if (Ok!=0 && lockOk==1 && mode==2){lockOk=0; dis=4; lcd.clear(); } // pilih menu 3
      if (Ok!=0 && lockOk==1 && mode==3){lockOk=0; dis=5; lcd.clear(); } // pilih menu 4
      
      if (mode>3 || mode<0) mode=0;
     
  }
  if (dis==2)
  {
    if (sub==0)
    {
      lcd.setCursor(0,0); lcd.print("Menu 1             ");
      lcd.setCursor(1,1); lcd.print("Sub Menu 1        "); 
      lcd.setCursor(1,2); lcd.print("Sub Menu 2        "); 
      lcd.setCursor(1,3); lcd.print("Sub Menu 3        "); 
      if (Down==0 && lockDown==0){lockDown=1;}  //turunkan Cursor ">"
      if (Down!=0 && lockDown==1){lcd.clear(); lockDown=0; mode++;} 
      
      if (Up==0 && lockUp==0){lockUp=1;}   //naikkan Cursor ">"
      if (Up!=0 && lockUp==1){lcd.clear(); lockUp=0; mode--;}
      if (Ok==0 && lockOk==0){lockOk=1; mode=0;}
      if (Ok!=0 && lockOk==1 && mode==0){lockOk=0; lcd.clear(); sub=1; } // Isi submenu 1
      if (Ok!=0 && lockOk==1 && mode==1){lockOk=0; lcd.clear(); sub=2; } // Isi submenu 2
      if (Ok!=0 && lockOk==1 && mode==2){lockOk=0; lcd.clear(); sub=3; } // Isi submenu 3
      if (mode>2 || mode<0) mode=0;
    {
        case 0 : lcd.setCursor(0,1); lcd.print(">"); break;
        case 1 : lcd.setCursor(0,2); lcd.print(">"); break;
        case 2 : lcd.setCursor(0,3); lcd.print(">"); break;
      }  
    }
  }
  
  if (dis==3)
  {
    lcd.setCursor(0,0); lcd.print("Menu 2             ");
    lcd.setCursor(1,1); lcd.print("Sub Menu 1        "); 
    lcd.setCursor(1,2); lcd.print("Sub Menu 2        "); 
    lcd.setCursor(1,3); lcd.print("Sub Menu 3        "); 
  }
    
  if (dis==4)
  {
    lcd.setCursor(0,0); lcd.print("Menu 3             ");
    lcd.setCursor(1,1); lcd.print("Sub Menu 1        "); 
    lcd.setCursor(1,2); lcd.print("Sub Menu 2        "); 
    lcd.setCursor(1,3); lcd.print("Sub Menu 3        "); 
  }  
  
  if (dis==5)
  {
    lcd.setCursor(0,0); lcd.print("Menu 4             ");
    lcd.setCursor(1,1); lcd.print("Sub Menu 1        "); 
    lcd.setCursor(1,2); lcd.print("Sub Menu 2        "); 
    lcd.setCursor(1,3); lcd.print("Sub Menu 3        "); 
  }
  //isi menu1////
  if (dis==2 && sub==1){lcd.setCursor(0,1); lcd.print(" Isi Sub Menu 1:::");}
  if (dis==2 && sub==2){lcd.setCursor(0,1); lcd.print(" Isi Sub Menu 2::");}
  if (dis==2 && sub==3){lcd.setCursor(0,1); lcd.print(" Isi Sub Menu 3:");}
  }
////////////////////////andalanelektro.id////////////////////////////////////////
Setelah berhasil diupload maka tampilan LCD akan seperti ini :
|  | 
| Tampilan awal menu dan sub menu | 
|  | 
| Jika tombol Menu ditekan | 
|  | 
| Memilih menu satu dengan OK | 
|  | 
| Memilih Submenu dengan OK | 

 
Tidak ada komentar:
Write comment