#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
#include <Wire.h>
#define SERIAL_OPTION 0
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 RTC;
const int ledPin = 13;
unsigned long previousMillis = 0;
const long interval = 5000; // Interval (5 detik)
void setup() {
if (SERIAL_OPTION) Serial.begin(9600);
lcd.init();
lcd.backlight();
RTC.begin();
pinMode(ledPin, OUTPUT);
}
void loop() {
DateTime now = RTC.now();
// Kontrol LED selama 10 detik
unsigned long currentMillis = millis(); // Current time
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
digitalWrite(ledPin, HIGH);
// LED menyala selama 1 detik (dari delay)
delay(1000);
//mematikan LED setelah jeda 1 detik
digitalWrite(ledPin, LOW);
}
if (SERIAL_OPTION) {
Serial.print(now.year()); Serial.print("/");
Serial.print(now.month()); Serial.print("/");
Serial.print(now.day()); Serial.print(" ");
Serial.print(now.hour()); Serial.print(":");
Serial.print(now.minute()); Serial.print(":");
Serial.print(now.second()); Serial.print("\n");
}
lcd.setCursor(0,0); lcd.print("TGL: ");
lcd.print(now.year()); lcd.print("/"); lcd.print(now.month()); lcd.print("/"); lcd.print(now.day());
lcd.setCursor(0,1); lcd.print("WAKTU: ");
lcd.print(now.hour()); lcd.print(":"); lcd.print(now.minute()); lcd.print(":"); lcd.print(now.second());
delay(1000);
}