#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h>
// Инициализация LCD (подключение пинов RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
// Инициализация RTC
RTC_DS1307 rtc;
void setup() {
// Инициализация LCD (16x2)
lcd.begin(16,2);
// Инициализация RTC
if (!rtc.begin()) {
lcd.print("RTC not found!");
while (1);
}
// Если RTC не работает, установим время компиляции
if (!rtc.isrunning()) {
lcd.print("RTC not running!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
// Выводим приветственное сообщение
lcd.print("RTC Clock");
delay(2000);
lcd.clear();
}
void loop() {
// Получаем текущее время
DateTime now = rtc.now();
// Отображаем время на LCD
lcd.setCursor(0, 0); // Устанавливаем курсор в начало первой строки
lcd.print("Time:");
lcd.setCursor(0, 1); // Устанавливаем курсор в начало второй строки
// Выводим часы
if (now.hour() < 10) {
lcd.print('0'); // Добавляем ноль перед часами, если они меньше 10
}
lcd.print(now.hour());
lcd.print(':');
// Выводим минуты
if (now.minute() < 10) {
lcd.print('0'); // Добавляем ноль перед минутами, если они меньше 10
}
lcd.print(now.minute());
lcd.print(':');
// Выводим секунды
if (now.second() < 10) {
lcd.print('0'); // Добавляем ноль перед секундами, если они меньше 10
}
lcd.print(now.second());
// Задержка перед следующим обновлением
delay(1000);
}