#include<LiquidCrystal_I2C.h>//inputan untuk LCD I2C
LiquidCrystal_I2C lcd (0x27,16,2);
int tombol = 2; //deklarasi variabel tombol pada pin 2
int gre = 3; //deklarasi variabel led_hijau pada pin 3
int yel = 4; //deklarasi variabel led_kuning pada pin 4
int red = 5; //deklarasi variabel led_merah pada pin 5
int jumlahTekanan; //deklarasi variabel untuk menghitung jumlah tekanan yang diberikan ke tombol
void setup() {
// put your setup code here, to run once:
pinMode(tombol, INPUT); //inisialisasi untuk pin pada variabel tombol sebagai input
pinMode(gre, OUTPUT); //inisialisasi untuk pin pada variabel led_hijau sebagai output
pinMode(yel, OUTPUT);
pinMode(red, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
int statusTombol = digitalRead(tombol); //membaca sinyal digital yang dikirim oleh tombol ke pin dan dimasukkan ke dalam variabel statusTombol
//skrip untuk lampu
if(statusTombol==HIGH){
jumlahTekanan ++; //menambahkan nilai +1 ke dalam variabel jumlahTekanan untuk menghitung berapa kali tekanan diberikan
delay(1000); //delay agar tidak terjadi pembacaan tekanan dua kali
if(jumlahTekanan==1){
digitalWrite(red, HIGH);
int r;
lcd.setCursor(16, 0);
lcd.print("PATUHI RAMBU");
lcd.setCursor(16, 1);
lcd.print("LALU LINTAS");
delay(200);
for (r = 0 ; r < 28; r++){
lcd.scrollDisplayLeft();
delay(200);
}
}
if(jumlahTekanan==2){
digitalWrite(red, LOW);
digitalWrite(yel, HIGH);
}
if(jumlahTekanan==3){
digitalWrite(yel, LOW);
digitalWrite(gre, HIGH);
int g;
lcd.setCursor(16, 0);
lcd.print(" HATI- HATI ");
lcd.setCursor(16, 1);
lcd.print(" DI JALAN ");
delay(300);
for (g = 0 ; g < 26; g++){
lcd.scrollDisplayLeft();
delay(300);
}
}
}
}