#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
RTC_DS1307 rtc;
#define tombol_hijau A0
#define tombol_biru A1
#define led_biru 11
#define led_hijau 12
int jam,menit,detik,tanggal,bulan,tahun,hari;
char simpan[33];
void setup() {
lcd.backlight(); lcd.init();
lcd.setCursor(3,0); lcd.print("SAYA LAGI PKL");
if(rtc.begin()) {
lcd.setCursor(0,1); lcd.print("RTC OKE");
} else {
lcd.setCursor(0,1); lcd.print("RTC ERROR");
}
pinMode(tombol_hijau,INPUT_PULLUP);
pinMode(tombol_biru,INPUT_PULLUP);
pinMode(led_biru,OUTPUT);
pinMode(led_hijau,OUTPUT);
delay(2000); lcd.clear();
rtc.adjust(DateTime(2025, 6, 17, 17, 4, 50));
}
void loop() {
DateTime now = rtc.now();
jam = now.hour();
menit = now.minute();
detik = now.second();
hari = now.dayOfTheWeek();
tanggal = now.day();
bulan = now.month();
tahun = now.year();
if(jam==18 && menit==5 && detik==10) digitalWrite(led_hijau,HIGH);
else if(detik==20) digitalWrite(led_biru,HIGH);
else if(detik==40) {
digitalWrite(led_hijau,LOW); digitalWrite(led_biru,LOW);
}
lcd.setCursor(0,0); //JAM 10:15:06 WIB
sprintf(simpan," TGL %02d-%02d-%04d ",tanggal,bulan,tahun);
lcd.print(simpan);
lcd.setCursor(0,1); //JAM 10:15:06 WIB
sprintf(simpan,"JAM %02d:%02d:%02d WIB",jam,menit,detik);
lcd.print(simpan); delay(300);
lcd.setCursor(0,1); //JAM 10:15:06 WIB
sprintf(simpan,"JAM %02d %02d %02d WIB",jam,menit,detik);
lcd.print(simpan); delay(300);
}