#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
RTC_DS3231 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD 16x2
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
lcd.begin(16, 2);
lcd.print("Jam Real-Time");
delay(2000);
lcd.clear();
}
void loop() {
DateTime now = rtc.now();
lcd.setCursor(0, 0);
lcd.print("Time : ");
lcd.print(now.hour(), DEC);
lcd.print(':');
printDigits(now.minute());
lcd.print(':');
printDigits(now.second());
lcd.setCursor(0, 1);
lcd.print("Date : ");
lcd.print(now.year(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.day(), DEC);
delay(1000);
}
void printDigits(int digits) {
// Utility function for printing two digits
if (digits < 10)
lcd.print('0');
lcd.print(digits);
}