#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
// Membuat objek RTC dan LCD
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Nama-nama hari
char daysOfTheWeek[7][12] = {
"Minggu", "Senin", "Selasa", "Rabu",
"Kamis", "Jumat", "Sabtu"
};
void setup() {
Serial.begin(57600);
// Memulai LCD
lcd.init();
lcd.backlight();
// Memulai RTC
if (!rtc.begin()) {
lcd.setCursor(0, 0);
lcd.print("RTC tidak ada!");
while (1);
}
// Mengatur waktu jika RTC belum berjalan
if (!rtc.isrunning()) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
lcd.setCursor(0, 0);
lcd.print("Jam Digital RTC");
delay(2000);
lcd.clear();
}
void loop() {
// Membaca tanggal dan waktu dari RTC
DateTime now = rtc.now();
// Baris pertama: menampilkan jam
lcd.setCursor(0, 0);
lcd.print("Jam: ");
if (now.hour() < 10) lcd.print("0");
lcd.print(now.hour());
lcd.print(":");
if (now.minute() < 10) lcd.print("0");
lcd.print(now.minute());
lcd.print(":");
if (now.second() < 10) lcd.print("0");
lcd.print(now.second());
lcd.print(" ");
// Baris kedua: menampilkan tanggal
lcd.setCursor(0, 1);
if (now.day() < 10) lcd.print("0");
lcd.print(now.day());
lcd.print("/");
if (now.month() < 10) lcd.print("0");
lcd.print(now.month());
lcd.print("/");
lcd.print(now.year());
delay(1000);
}