#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
#define pinLed_Kuning 19
#define pinLed_Hijau 18
#define pinPB_Kuning 14
#define pinPB_Hijau 12
#define pinBuzzer 5
unsigned char Status_PB_Hijau, Status_PB_Kuning;
unsigned char Counter;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(pinPB_Hijau, INPUT);
pinMode(pinPB_Kuning, INPUT);
pinMode(pinLed_Kuning, OUTPUT);
pinMode(pinLed_Hijau, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0); // x dan y
LCD.print(" TNU 29 ");
LCD.setCursor(0, 1);
LCD.print("Counter: ");
}
void loop() {
// put your main code here, to run repeatedly:
Status_PB_Hijau = digitalRead(pinPB_Hijau);
if (Status_PB_Hijau == 1){
Counter++; // Counter = Counter+1;
LCD.setCursor(8, 1);
LCD.print(Counter);
while (Status_PB_Hijau == 1){
Status_PB_Hijau = digitalRead(pinPB_Hijau);
Serial.println("terjebak...");
delay(100);
}
}
Status_PB_Kuning = digitalRead(pinPB_Kuning);
if (Status_PB_Kuning == 1){
Counter--; // Counter = Counter+1;
LCD.setCursor(8, 1);
LCD.print(Counter);
}
//==== alarm ===
if (Counter == 10){
for (i=0;i<10;i++)
{ Serial.print(i);
Serial.print(" ");
digitalWrite(pinBuzzer, HIGH);
tone(pinBuzzer, 100);
delay(1000);
digitalWrite(pinBuzzer, LOW);
noTone(pinBuzzer);
delay(1000);
}
}
delay(100); // this speeds up the simulation
}