Arduino Traffic Light Simulator

Ketemu lagi dengan Ardutech, semoga kabar sahabat semua semakin oke, tambah sehat dan bermanfaat…. Baik kita lanjutkan membuat proyek Arduino-nya. Kali ini modifikasi program yang pernah kita buat, bagi yang belum pernah membaca aplikasi Arduino ini silakan cek di sini : Membuat Traffic Light dg Arduino. Modifikasinya dengan ditambah sebuah tombol yang berfungsi untuk merubah mode.

  • Mode normal : lampu traffic light berjalan seperti biasanya (Hijau, Kuning , Merah bergantian)
  • Mode blink : kondisi lengang, malam hari. Hanya lampu kuning saja yang nyala berkedip.

Rangkaian masih sama dengan sebelumnya hanya kita tambahkan sebuah tombol (push ON) saja ke pin A0 Arduino UNO.

Jadi komponen yang diperlukan untuk membuat traffic light simulator dengan Arduino UNO tidaklah banyak, seperti daftar berikut :

  • Arduino UNO (1)
  • Switch push ON (1)
  • LED merah 5mm (4)
  • LED kuning 5 mm (4)
  • LED hijau 5 mm (4)
  • Resistor 330 Ohm (12)

Koneksi antara Arduino dengan LED juga masih sama : masing – masing kaki anoda LED terhubung ke pin Arduino UNO sehingga untuk control LED cukup dengan memberi logika ‘1’ maka LED nyala (aktif HIGH) dan untuk mematikan LED cukup dengan memberi logika ‘0’.

Tombol fungsinya untuk memilih mode. Jika ditekan maka akan berpindah ke mode ‘blink’ dan jika ditekan kembali akan berpindah ke mode ‘normal’.

Berikutnya kita buat programnya dengan Arduino IDE. Program Arduino untuk simulator lampu merah seperti pada program berikut ini :

#define H1 2
#define K1 3
#define M1 4
#define H2 5
#define K2 6
#define M2 7
#define H3 8
#define K3 9
#define M3 10
#define H4 11
#define K4 12
#define M4 13
#define SW A0
byte flag;
int i;
void cek_sw(){
  if(digitalRead(SW)==LOW){
    flag=~flag;
    i=100; 
    delay(300);  
  }
}
//==========================
void tunda_3(){  
  for(i=0;i<101;i++){
    cek_sw();
    delay(30);
  }
}
//============================
void tunda_1(){  
  for(i=0;i<101;i++){
    cek_sw();
    delay(10);
  }
}
//====================
void normal(){
  //--------Hidupkan H1 + M2 + M3 + M4
  digitalWrite(H1,1);
  digitalWrite(M2,1);
  digitalWrite(M3,1);
  digitalWrite(M4,1);
  tunda_3(); 
  if(flag) goto selesai; 
  //-------------K1 ON, H1 OFF
  digitalWrite(H1,0);
  digitalWrite(K1,1);  
  tunda_1(); 
  if(flag) goto selesai;  
  //-------------M1 + H2 ON, K1 +M2 OFF
  digitalWrite(M1,1);
  digitalWrite(K1,0);
  digitalWrite(H2,1);
  digitalWrite(M2,0);
  tunda_3(); 
  if(flag) goto selesai; 
  //------------- K2 ON,H2 OFF
  digitalWrite(H2,0);
  digitalWrite(K2,1);  
  tunda_1(); 
  if(flag) goto selesai;  
  //-------------M2 + H3 ON, K2 +M3 OFF
  digitalWrite(M2,1);
  digitalWrite(H3,1);
  digitalWrite(K2,0); 
  digitalWrite(M3,0);  
  tunda_3();
  if(flag) goto selesai;   
  //------------- K3 ON,H3 OFF
  digitalWrite(H3,0);
  digitalWrite(K3,1);  
  tunda_1();  
  if(flag) goto selesai; 
  //-------------M3 + H4 ON, K3 +M4 OFF
  digitalWrite(M3,1);
  digitalWrite(H4,1);
  digitalWrite(K3,0);
  digitalWrite(M4,0);
  tunda_3(); 
  if(flag) goto selesai;  
  //------------- K4 ON,H4 OFF
  digitalWrite(H4,0);
  digitalWrite(K4,1);  
  tunda_1();
  
  //------------- K4 M1 OFF OFF
selesai:
  digitalWrite(M1,0);
  digitalWrite(K4,0);
}
//=================
void kuning_blink(){  
   for(char i=2;i<14;i++)digitalWrite(i, 0);//matikan semua    
   //blink kuning
   digitalWrite(K1,1);
   digitalWrite(K2,1);
   digitalWrite(K3,1);
   digitalWrite(K4,1); 
   tunda_1();  
   digitalWrite(K1,0);
   digitalWrite(K2,0);
   digitalWrite(K3,0);
   digitalWrite(K4,0); 
   tunda_1();  
}
//=========================
void setup() {
  //------------------pin 2 s/d pin 13 sebagai dig output
  for(char i=2;i<14;i++){
    pinMode(i, OUTPUT);
  }
  //------------------Matikan semua LED
  for(char i=2;i<14;i++){
    digitalWrite(i, 0);
  }
  pinMode(SW,INPUT_PULLUP); 
}
//===================
void loop() {  
  if(flag==0){
    normal();  
  }
  else{
    kuning_blink();
  }
}

Setelah program dibuat dengan Arduino IDE berikutnya simpan (Save) kemudian Upload ke Arduino UNO. Hasilnya LED akan ‘nyala’ dan ‘padam’ seperti pada system lampu merah di per-empat-an jalan. Pertama yang nyala adalah lampu Hijau 1, Merah 2, Merah 3 dan Merah 4 (ruas jalan 1 HIJAU/JALAN).

Berikutnya yang nyala lampu Kuning 1, Merah 2, Merah 3 dan Merah 4 (ruas jalan 1 KUNING/HATI – HATI). Kemudian lampu Merah 1, Hijau 2, Merah 3, dan Merah 4 (ruas jalan 1 HIJAU/JALAN). Demikian seterusnya sampai ruas jalan 4 dan berputar lagi.

Kita coba tekan tombol (switch) maka LED kuning semua akan nyala dan padam bersamaan dengan delay sekitar 1 detik (blink). Silakan tekan lagi tombolnya maka nyala Traffic Light akan kembali normal.

Alhamdulillah selesai sudah aplikasi Arduino membuat traffic light simulator dengan Arduino UNO. Dan tambahan tombol untuk memilih mode. Semoga bermanfaat.

Leave a Reply

Your email address will not be published.