#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
bool isTimeSet = false;
void setup() {
Serial.begin(9600);
rtc.begin();
}
void readTime() {
Serial.println("Введите дату и время в формате ДД-ММ-ГГГГ/ЧЧ-ММ-СС:");
while (Serial.available() == 0) {
delay(100);
}
String input = Serial.readStringUntil('\n');
int day = input.substring(0, 2).toInt();
int month = input.substring(3, 5).toInt();
int year = input.substring(6, 10).toInt();
int hour = input.substring(11, 13).toInt();
int minute = input.substring(14, 16).toInt();
int second = input.substring(17, 19).toInt();
rtc.adjust(DateTime(year, month, day, hour, minute, second));
isTimeSet = true;
Serial.println("Время установлено. Отображение каждые 5 секунд:");
}
void loop() {
if (!isTimeSet) {
readTime();
return;
}
DateTime now = rtc.now();
Serial.print("Дата: ");
if (now.day() < 10) Serial.print("0");
Serial.print(now.day());
Serial.print("-");
if (now.month() < 10) Serial.print("0");
Serial.print(now.month());
Serial.print("-");
Serial.print(now.year());
Serial.print(" Время: ");
if (now.hour() < 10) Serial.print("0");
Serial.print(now.hour());
Serial.print(":");
if (now.minute() < 10) Serial.print("0");
Serial.print(now.minute());
Serial.print(":");
if (now.second() < 10) Serial.print("0");
Serial.println(now.second());
delay(5000);
}