#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
// Definisikan pin LED
const int led1 = 26;
const int led2 = 27;
void setup() {
// Inisialisasi pin LED sebagai output
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
// Inisialisasi komunikasi serial
Serial.begin(9600);
// Inisialisasi komunikasi I2C untuk RTC
Wire.begin();
// Cek apakah modul RTC tersedia
if (!rtc.begin()) {
Serial.println("Tidak dapat menemukan RTC");
while (1);
}
// Cek apakah waktu RTC tidak valid, jika iya, atur waktu default
if (rtc.lostPower()) {
Serial.println("RTC kehilangan daya, atur waktu!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();
// Ambil jam saat ini
int hour = now.hour();
// Atur kondisi berdasarkan waktu
if (hour == 1) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
} else if (hour == 2) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
} else if (hour == 3) {
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
} else {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
// Tampilkan waktu di serial monitor
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
// Tunggu 1 detik
delay(1000);
}