#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BUTTON_PIN 16
#define LED_PIN 14
bool kondisiSekarang;
bool kondisiTerakhir = HIGH;
bool switch_test = HIGH;
// Initialize the LCD, set the address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
// Initialize push button
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
// Initialize the LCD
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Status LED");
}
void loop() {
// Read push button
kondisiSekarang = digitalRead(BUTTON_PIN);
if (kondisiSekarang == LOW) {
kondisiTerakhir = !kondisiTerakhir;
switch_test = kondisiTerakhir;
delay(500);
}
if (switch_test == HIGH) {
Serial.println("LED Mati");
digitalWrite(LED_PIN, LOW);
lcd.setCursor(0, 1);
lcd.print("LED State: OFF ");
} else {
Serial.println("LED Menyala");
digitalWrite(LED_PIN, HIGH);
lcd.setCursor(0, 1);
lcd.print("LED State: ON ");
}
delay(10);
}