#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
int buzzerPin = 2;
void setup() {
//put your setup code here, to run once:
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
lcd.init();
lcd.backlight();
Serial.begin(115200);
pinMode(4, INPUT_PULLUP);
lcd.setCursor(7, 1);
lcd.print("Hijau!");
}
int counter = 0;
int lastState = HIGH;
int isNyebrang = 0;
void loop() {
// put your main code here, to run repeatedly:
noTone(buzzerPin);
digitalWrite(10, LOW);
digitalWrite(13, LOW);
digitalWrite(11, HIGH);
lcd.setCursor(7, 1);
if (isNyebrang == 1) {
delay(1000);
lcd.clear();
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
lcd.setCursor(7, 1);
lcd.print("KUNING!");
delay(1000);
lcd.clear();
digitalWrite(12, LOW);
digitalWrite(10, HIGH);
digitalWrite(13, HIGH);
tone(buzzerPin, 1000);
lcd.setCursor(7, 1);
lcd.print("Jalan");
delay(1000);
lcd.print("MERAH!");
isNyebrang = 0;
lcd.clear();
lcd.print("Hijau!");
delay("5000");
}
int value = digitalRead((4));
if (lastState != value) {
isNyebrang = 1;
}
}