на всякий случай сохранил, работает
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RtcDS3231.h>
// Инициализация LCD
LiquidCrystal_I2C lcd(0x27, 20, 4); // Убедись, что адрес правильный (может быть 0x3F)
// Объект часов
RtcDS3231<TwoWire> Rtc(Wire);
void setup() {
Serial.begin(115200);
Wire.begin();
// Инициализация LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("LCD инициализирован");
// Инициализация RTC
Rtc.Begin();
if (!Rtc.IsDateTimeValid()) {
Serial.println("RTC остановлен или данные некорректны. Запуск...");
// Установить текущее время компиляции
Rtc.SetDateTime(RtcDateTime(__DATE__, __TIME__));
}
delay(2000);
lcd.clear();
}
void loop() {
RtcDateTime now = Rtc.GetDateTime();
// 🔧 Используем явное преобразование температуры
float temp = Rtc.GetTemperature().AsFloatDegC();
lcd.setCursor(0, 0);
lcd.print("Date:");
lcd.setCursor(6, 0);
lcd.printf("%02u/%02u/%04u", now.Day(), now.Month(), now.Year());
lcd.setCursor(0, 1);
lcd.print("Time:");
lcd.setCursor(6, 1);
lcd.printf("%02u:%02u:%02u", now.Hour(), now.Minute(), now.Second());
lcd.setCursor(0, 2);
lcd.printf("Temp: %.2f C", temp);
delay(1000); // обновление раз в секунду
}
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!