#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#define pBuzzer 11
#define pButton 4
#define pLed 13
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void PrintDate();
void setup()
{
Serial.begin(9600);
pinMode(pBuzzer, OUTPUT);
pinMode(pButton, INPUT_PULLUP);
pinMode(pLed, OUTPUT);
lcd.init();
lcd.backlight();
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
rtc.adjust(DateTime(2024,6,13,8,13,0));
}
void loop() {
lcd.clear();
DateTime date(2024, 6, 13, 8, 14, 0);
DateTime now = rtc.now();
if (digitalRead(pButton) == HIGH)
{
digitalWrite(pLed, HIGH);
}
if (digitalRead(pButton) == LOW)
{
digitalWrite(pLed, LOW);
}
if(now.day() == date.day() &&
now.hour() == date.hour() &&
now.minute() == date.minute())
{
int iLevl = 100;
for(int i = 0; i < 4; i++)
{
iLevl *= 2;
tone (pBuzzer, iLevl);
delay(500);
}
noTone(pBuzzer);
}
PrintDate(now);
}
void PrintDate(DateTime now)
{
lcd.setCursor(0,0);
lcd.print(now.year());
lcd.print("/");
lcd.print(now.month());
lcd.print("/");
lcd.print(now.day());
lcd.setCursor(0,1);
lcd.print(now.hour());
lcd.print(":");
lcd.print(now.minute());
lcd.print(":");
lcd.print(now.second());
delay(1000);
}