ELECTRONICS

Часы реального времени для Arduino: DS3231, DS1307, PCF8563 — какой модуль выбрать

Сама по себе Arduino не знает, который час: после выключения питания счёт времени начинается с нуля. Модуль часов реального времени идёт от батарейки и помнит дату и время годами — плата просто спрашивает его по I2C, когда нужно.

Это основа любого проекта с расписанием: включить полив в семь утра, записать в лог время события, показать часы на дисплее. Точность у модулей разная, и разница заметна: дешёвый DS1307 уходит на минуты в месяц, DS3231 — на минуты в год.

Разборы конкретных моделей

Какой модуль брать

DS3231

Кварц внутри микросхемы с термокомпенсацией: уход не больше двух минут в год. Два будильника, выход 32 кГц, датчик температуры в придачу. Стандартный выбор, дороже DS1307 на копейки.

DS1307

Старый модуль с внешним кварцем: точность зависит от температуры и качества кварца, уход до нескольких минут в месяц. Питание только 5 В. Берут, если он уже есть в наборе; новый покупать смысла нет.

PCF8563

Экономичный модуль для батарейных проектов: потребляет меньше микроампера. Точность как у DS1307, но есть таймер и будильник. Часто стоит на платах ESP32 с дисплеем.

Часы по интернету

На ESP32 и ESP8266 модуль не обязателен: время берётся с сервера NTP при каждом включении. Но если сеть недоступна, плата останется без времени — для автономного устройства модуль всё равно нужен.

Про батарейку

На модулях стоит держатель под CR2032 или аккумулятор LIR2032. На DS3231 с маркировкой ZS-042 есть цепь подзарядки, рассчитанная на аккумулятор: обычную батарейку она пытается заряжать, и та вздувается. Либо ставьте LIR2032, либо выпаяйте резистор в цепи зарядки — на плате он рядом с диодом.

Батарейки хватает на несколько лет: пока есть основное питание, модуль её не расходует.