#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
//lampu1
unsigned long lampu1sebelumnya = 0;
bool lampu1stats = false;
unsigned long intervallampu1 = 10000;
byte lampu1 = 9;
//lampu2
unsigned long lampu2sebelumnya = 0;
bool lampu2stats = false;
unsigned long intervallampu2 = 6000;
byte lampu2 = 8;
void setup() {
lcd.init();
lcd.backlight();
pinMode(lampu1, OUTPUT);
pinMode(lampu2, OUTPUT);
lcd.home();
lcd.print(F("Jamal millis()"));
delay(1000);
lcd.clear();
}
void loop() {
unsigned long waktusekarang = millis();
lcd.setCursor(0, 0);
lcd.print("Waktu : ");
lcd.print(waktusekarang / 1000);
//lampu1
lcd.setCursor(0, 1);
lcd.print("lampu 1 : ");
if (waktusekarang - lampu1sebelumnya > intervallampu1) {
//flagging
lampu1stats = !lampu1stats;
if (lampu1stats) {
lcd.setCursor(10, 1);
lcd.print("ON ");
digitalWrite(lampu1, HIGH);
} else {
lcd.setCursor(10, 1);
lcd.print("OFF");
digitalWrite(lampu1, LOW);
}
lampu1sebelumnya = waktusekarang;
}
//lampu2
lcd.setCursor(0, 2);
lcd.print("lampu 2 : ");
if (waktusekarang - lampu2sebelumnya > intervallampu2) {
//flagging
lampu2stats = !lampu2stats;
if (lampu2stats) {
lcd.setCursor(10, 2);
lcd.print("ON ");
digitalWrite(lampu2, HIGH);
} else {
lcd.setCursor(10, 2);
lcd.print("OFF");
digitalWrite(lampu2, LOW);
}
lampu2sebelumnya = waktusekarang;
}
}