#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2); // Default address of most PCF8574 modules, change according
#define PB1 12
#define PB2 11
#define LED1 10
#define LED2 9
#define BUZZER 13
int a;
int b;
void setup() {
lcd.begin(); //Mulai LCD
lcd.backlight(); //Nyalakan Backlight
pinMode(PB1, INPUT);
pinMode(PB2, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(BUZZER, OUTPUT);
//Tampilan Awal
lcd.setCursor(2, 0);
lcd.print("KELAS TEKNISI");
lcd.setCursor(5, 1);
lcd.print("OTOMASI");
delay(1000);
lcd.clear();
}
void loop() {
int button1 = digitalRead(PB1);
int button2 = digitalRead(PB2);
if (button1 == HIGH) {
tone(BUZZER, 1800);
while (digitalRead(PB1) == HIGH) {}
a++;
tone(BUZZER, 1800);
delay(100);
noTone(BUZZER);
}
if (button2 == HIGH) {
tone(BUZZER, 1000);
while (digitalRead(PB2) == HIGH) {}
b++;
tone(BUZZER, 1000);
delay(100);
noTone(BUZZER);
}
if (a > 1) {
a = 0;
}
if (b > 1) {
b = 0;
}
if (a == 0) {
lcd.setCursor(0, 0);
lcd.print("Lampu 1 = OFF");
digitalWrite(LED1, LOW);
}
if (a == 1) {
lcd.setCursor(0, 0);
lcd.print("Lampu 1 = ON ");
digitalWrite(LED1, HIGH);
delay(100);
buzz1();
}
if (b == 0) {
lcd.setCursor(0, 1);
lcd.print("Lampu 2 = OFF");
digitalWrite(LED2, LOW);
}
if (b == 1) {
lcd.setCursor(0, 1);
lcd.print("Lampu 2 = ON ");
digitalWrite(LED2, HIGH);
delay(100);
buzz2();
}
}
void buzz1(){
tone(BUZZER, 800);
delay(200);
}
void buzz2(){
tone(BUZZER, 1000);
delay(200);
}