Часы реального времени DS3231
Та же шина I2C, что у дисплея: SDA на A4, SCL на A5, адрес 0x68. Время модуль держит сам, от батарейки, поэтому adjust() зовут один раз, а не в каждом setup().
Программа
// Часы реального времени DS3231 — та же шина I2C, что и у дисплея.
//
// Смысл модуля в том, что время он держит САМ, от своей батарейки: плату можно
// обесточить, а часы не собьются. Поэтому adjust() зовут один раз — при первом
// запуске или после потери питания, — а не в каждом setup().
//
// Чип в инспекторе устройства (DS3231 или DS1307) должен совпадать с классом в
// скетче: DS1307 не умеет getTemperature() и вернёт 0.
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("часы не найдены — проверьте SDA/SCL и питание");
return;
}
if (rtc.lostPower()) {
rtc.adjust(DateTime(2026, 9, 1, 8, 30, 0)); // год, месяц, день, час, минута, секунда
}
}
void loop() {
DateTime now = rtc.now();
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.print(now.second());
Serial.print(" на плате часов ");
Serial.print(rtc.getTemperature());
Serial.println(" C");
delay(1000);
}
Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.