#include <LiquidCrystal_I2C.h> // LCD I2C용 라이브러리
#include <RTClib.h> // 실
#include <Wire.h> // I2C통신 라이브러리
#define led 2
#define SERIAL_OPTION 0 // 시리얼 통신=0, 안함=0
LiquidCrystal_I2C lcd(0x27,16,2); // 접근주소: 0x3F or 0x27
RTC_DS1307 RTC;
void setup() {
pinMode(led, OUTPUT);
if (SERIAL_OPTION) Serial.begin(9600); // 시리얼통신 초기화
lcd.init(); // LCD 초기화
lcd.backlight(); // LCD 백라이트 켜기
RTC.begin(); // 실시간시계 시작
RTC.adjust(DateTime(2025,2,4,17,59,30)); // 처음 한번만 적절한 날짜 시간으로 설정, 이후 주석처리
}
void loop() {
DateTime now=RTC.now();
if (SERIAL_OPTION) {
Serial.print(now.year()); Serial.print("/");
Serial.print(now.month()); Serial.print("/");
Serial.print(now.day()); Serial.print(" ");
Serial.print(now.hour()); Serial.print(":");
Serial.print(now.minute()); Serial.print(":");
Serial.print(now.second()); Serial.print("\n");
}
lcd.setCursor(0,0); lcd.print("DATE: ");
lcd.print(now.year()); lcd.print("/");
lcd.print(now.month()); lcd.print("/"); lcd.print(now.day());
lcd.setCursor(0,1); lcd.print("TIME: ");
lcd.print(now.hour()); lcd.print(":"); lcd.print(now.minute());
lcd.print(":"); lcd.print(now.second());
if(now.hour()==18 && now.minute() == 00){
//digitalWrite(led, HIGH);
tone(led, 100);
delay(100);
noTone(led);
delay(100);
}
else{
//digitalWrite(led, LOW);
noTone(led);
delay(1000);
}
}