#include <RTClib.h>
RTC_DS1307 rtc;
char namaHari[7][8] = {"ahad", "senin", "selasa", "rabu", "kamis", "jum'at", "sabtu"};
const int jamalarm = 23;
const int menitalarm = 25;
const int detikalarm = 10;
boolean alarmnyala = false;
int alarmmulai;
void setup() {
Serial.begin(9600);
if (! rtc.begin()) {
Serial.println("RTC TIDAK TERBACA");
while (1);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
}
void loop() {
DateTime now = rtc.now();
Serial.print(namaHari[now.dayOfTheWeek()]);
Serial.print(',');
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.print(" ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
if (!alarmnyala && now.hour() == jamalarm && now.minute() == menitalarm && now.second() == detikalarm) {
digitalWrite(2, HIGH); alarmnyala = true;
alarmmulai = millis();
}
if (alarmnyala && (millis() - alarmmulai >= 10000)) {
digitalWrite(2, LOW);
alarmnyala = false;
}
delay(1000);
}