#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
int hourButtonPin = 2; // کلید تنظیم ساعت
int minuteButtonPin = 3; // کلید تنظیم دقیقه
void setup() {
pinMode(hourButtonPin, INPUT_PULLUP);
pinMode(minuteButtonPin, INPUT_PULLUP);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (!rtc.isrunning()) {
Serial.println("RTC is NOT running!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
Serial.begin(9600);
}
void loop() {
DateTime now = rtc.now();
int hour = now.hour();
int minute = now.minute();
if (digitalRead(hourButtonPin) == LOW) {
delay(200); // debounce
if (hour < 23) {
rtc.adjust(DateTime(now.year(), now.month(), now.day(), hour + 1, minute, 0));
} else {
rtc.adjust(DateTime(now.year(), now.month(), now.day(), 0, minute, 0));
}
}
if (digitalRead(minuteButtonPin) == LOW) {
delay(200); // debounce
if (minute < 59) {
rtc.adjust(DateTime(now.year(), now.month(), now.day(), hour, minute + 1, 0));
} else {
rtc.adjust(DateTime(now.year(), now.month(), now.day(), hour, 0, 0));
}
}
Serial.print(hour);
Serial.print(":");
if (minute < 10) {
Serial.print("0");
}
Serial.println(minute);
delay(1000);
}