#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Alamat I2C untuk LCD 16x2. Bisa berbeda tergantung pada modul LCD I2C Anda.
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int ledPins[] = {8, 7, 4, 2}; // Pin Arduino yang terhubung ke LED
void setup() {
Serial.begin(9600);
lcd.begin(16, 2); // Menyediakan argumen untuk jumlah kolom dan baris
lcd.backlight();
for (int i = 0; i < 4; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Pastikan LED OFF saat awal
}
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("DM_23");
lcd.setCursor(2, 10);
lcd.print("System Ready");
delay(2000);
lcd.clear();
updateLCD(); // Update initial LCD display
}
void loop() {
// Turn on all LEDs one by one
for (int i = 0; i < 4; i++) {
digitalWrite(ledPins[i], HIGH);
updateLCD();
delay(3000);
}
// Turn off all LEDs one by one
for (int i = 0; i < 4; i++) {
digitalWrite(ledPins[i], LOW);
updateLCD();
delay(3000);
}
}
void updateLCD() {
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("F1: ");
lcd.print(digitalRead(ledPins[0]) ? "ON " : "OFF");
lcd.setCursor(9, 0);
lcd.print("F2: ");
lcd.print(digitalRead(ledPins[1]) ? "ON " : "OFF");
lcd.setCursor(1, 1);
lcd.print("F3: ");
lcd.print(digitalRead(ledPins[2]) ? "ON " : "OFF");
lcd.setCursor(10, 1);
lcd.print("A: ");
lcd.print(digitalRead(ledPins[3]) ? "ON " : "OFF");
}