#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int lampuMerah1 = 2;
const int lampuKuning1 = 3;
const int lampuHijau1 = 4;
const int lampuMerah2 = 5;
const int lampuKuning2 = 6;
const int lampuHijau2 = 7;
const int lampuMerah3 = 8;
const int lampuKuning3 = 9;
const int lampuHijau3 = 10;
const int lampuMerah4 = 11;
const int lampuKuning4 = 12;
const int lampuHijau4 = 13;
const unsigned long waktuMerah = 3000;
const unsigned long waktuKuning = 3000;
const unsigned long waktuHijau = 3000;
void setup() {
pinMode(lampuMerah1, OUTPUT);
pinMode(lampuKuning1, OUTPUT);
pinMode(lampuHijau1, OUTPUT);
pinMode(lampuMerah2, OUTPUT);
pinMode(lampuKuning2, OUTPUT);
pinMode(lampuHijau2, OUTPUT);
pinMode(lampuMerah3, OUTPUT);
pinMode(lampuKuning3, OUTPUT);
pinMode(lampuHijau3, OUTPUT);
pinMode(lampuMerah4, OUTPUT);
pinMode(lampuKuning4, OUTPUT);
pinMode(lampuHijau4, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
}
void loop() {
//(1) - ATAS
lcd.init();
lcd.setCursor(0, 0);
lcd.print("SELAMAT JALAN!");
digitalWrite(lampuMerah1, LOW);
digitalWrite(lampuKuning1, LOW);
digitalWrite(lampuHijau1, HIGH);
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah2,HIGH);
digitalWrite(lampuKuning2, LOW);
digitalWrite(lampuHijau2,LOW);
//kanan
digitalWrite(lampuMerah3, HIGH);
digitalWrite(lampuKuning3, LOW);
digitalWrite(lampuHijau3, LOW);
//bawah
digitalWrite(lampuMerah4, HIGH);
digitalWrite(lampuKuning4, LOW);
digitalWrite(lampuHijau4, LOW);
//kiri
delay(3000);
//---------------------------------------------------------//
// (2) - Lampu kuning, lampu merah lainnya
lcd.init();
lcd.setCursor(0, 0);
lcd.print("HATI-HATI!");
digitalWrite(lampuMerah1, LOW);
digitalWrite(lampuKuning1, HIGH);
digitalWrite(lampuHijau1, LOW);
//atas
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah2, HIGH);
digitalWrite(lampuKuning2,LOW);
digitalWrite(lampuHijau2, LOW);
digitalWrite(lampuMerah3,HIGH);
digitalWrite(lampuKuning3, LOW);
digitalWrite(lampuHijau3,LOW);
digitalWrite(lampuMerah4, HIGH);
digitalWrite(lampuKuning4, LOW);
digitalWrite(lampuHijau4, LOW);
delay(3000);
//-------------------------------------------------------//
// (3) - Lampu hijau, lampu merah lainnya
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah1, HIGH);
digitalWrite(lampuKuning1, LOW);
digitalWrite(lampuHijau1, LOW);
//atas
lcd.init();
lcd.setCursor(0, 0);
lcd.print("SELAMAT JALAN!");
digitalWrite(lampuMerah2, LOW);
digitalWrite(lampuKuning2,LOW);
digitalWrite(lampuHijau2, HIGH);
digitalWrite(lampuMerah3, HIGH);
digitalWrite(lampuKuning3, LOW);
digitalWrite(lampuHijau3, LOW);
digitalWrite(lampuMerah4,HIGH);
digitalWrite(lampuKuning4, LOW);
digitalWrite(lampuHijau4, LOW);
delay(3000);
//---------------------------------------------------------//
// (4) - Lampu hijau, lampu merah lainnya
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah1, HIGH);
digitalWrite(lampuKuning1, LOW);
digitalWrite(lampuHijau1, LOW);
lcd.init();
lcd.setCursor(0, 0);
lcd.print("HATI-HATI!");
digitalWrite(lampuMerah2, LOW);
digitalWrite(lampuKuning2,HIGH);
digitalWrite(lampuHijau2, LOW);
digitalWrite(lampuMerah3, HIGH);
digitalWrite(lampuKuning3, LOW);
digitalWrite(lampuHijau3, LOW);
digitalWrite(lampuMerah4,HIGH);
digitalWrite(lampuKuning4, LOW);
digitalWrite(lampuHijau4, LOW);
delay(3000);
// (5) - Lampu hijau, lampu merah lainnya
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah1, HIGH);
digitalWrite(lampuKuning1, LOW);
digitalWrite(lampuHijau1, LOW);
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah2, HIGH);
digitalWrite(lampuKuning2,LOW);
digitalWrite(lampuHijau2, LOW);
digitalWrite(lampuMerah3,LOW);
digitalWrite(lampuKuning3, LOW);
digitalWrite(lampuHijau3, HIGH);
digitalWrite(lampuMerah4,HIGH);
digitalWrite(lampuKuning4, LOW);
digitalWrite(lampuHijau4, LOW);
delay(3000);
// (6) - Lampu hijau, lampu merah lainnya
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah1, HIGH);
digitalWrite(lampuKuning1, LOW);
digitalWrite(lampuHijau1, LOW);
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah2,HIGH);
digitalWrite(lampuKuning2,LOW);
digitalWrite(lampuHijau2, LOW);
digitalWrite(lampuMerah3,LOW);
digitalWrite(lampuKuning3, HIGH);
digitalWrite(lampuHijau3, LOW);
digitalWrite(lampuMerah4,HIGH);
digitalWrite(lampuKuning4, LOW);
digitalWrite(lampuHijau4, LOW);
delay(3000);
// (7) - Lampu hijau, lampu merah lainnya
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah1, HIGH);
digitalWrite(lampuKuning1, LOW);
digitalWrite(lampuHijau1, LOW);
lcd.init();
lcd.setCursor(0, 0);
lcd.print("BERHENTI!");
digitalWrite(lampuMerah2, HIGH);
digitalWrite(lampuKuning2,LOW);
digitalWrite(lampuHijau2, LOW);
digitalWrite(lampuMerah3, HIGH);
digitalWrite(lampuKuning3, LOW);
digitalWrite(lampuHijau3, LOW);
digitalWrite(lampuMerah4,LOW);
digitalWrite(lampuKuning4, LOW);
digitalWrite(lampuHijau4, HIGH);
delay(3000);
// (8) - Lampu hijau, lampu merah lainnya
digitalWrite(lampuMerah1, HIGH);
digitalWrite(lampuKuning1, LOW);
digitalWrite(lampuHijau1, LOW);
digitalWrite(lampuMerah2, LOW);
digitalWrite(lampuKuning2,LOW);
digitalWrite(lampuHijau2, HIGH);
digitalWrite(lampuMerah3, HIGH);
digitalWrite(lampuKuning3, LOW);
digitalWrite(lampuHijau3, LOW);
digitalWrite(lampuMerah4,LOW);
digitalWrite(lampuKuning4, HIGH);
digitalWrite(lampuHijau4, LOW);
delay(3000);
}