
DS3231 RTC Module
Adafruit (плата), Analog Devices / Maxim (DS3231) · Adafruit DS3231 Precision RTC Breakout PID 5188, STEMMA QT
Хранение календарного времени с резервным питанием независимо от основного контроллера.
Автор: SLDV LAB
Опубликовано · Обновлено
О МОДУЛЕ
Что делает Adafruit DS3231 Precision RTC Breakout PID 5188, STEMMA QT
DS3231 использует температурно-компенсированный генератор и продолжает отсчёт от резервного элемента при исчезновении основного питания. Часы полезны для отметок времени в автономном журнале. Они не узнают текущее время из интернета и не хранят часовой пояс: UTC или местное время выбирает программа.
Здесь описана Adafruit PID 5188 в исполнении STEMMA QT с держателем CR1220. Фото и справочная распиновка относятся именно к PID 5188; прежняя плата Adafruit PID 3013 без STEMMA QT имеет другое исполнение. Это не универсальное описание дешёвых плат с держателем CR2032/LIR2032, EEPROM и возможной зарядной цепью. Сам DS3231 не является зарядным устройством. Неперезаряжаемые CR-элементы нельзя заряжать; у неизвестного модуля до установки батарейки необходимо проверить схему. Простая цепь из диода и резистора не заменяет правильное зарядное устройство для Li-ion. Не ставьте CR2032 в неизвестную плату только потому, что она подходит по диаметру.
Флаг lostPower предупреждает, что сохранённое время может быть недостоверным. Пример не перезаписывает часы при каждом старте; первичная установка выполняется только после явного включения настройки. Пока батарейка не установлена, после отключения питания время может потеряться. Контакты SQW и 32K имеют открытый сток и требуют подтяжек, если используются.
Adafruit DS3231, изделие 5188, версия STEMMA QT; батарейка на снимке не показана.
DS3231 RTC Module. Фото: Kattni Rembor / Adafruit. Оригинал: https://learn.adafruit.com/assets/103727 . Лицензия фотографии: CC BY-SA 3.0, https://creativecommons.org/licenses/by-sa/3.0/ . Изменения: Удалён исходный фон вокруг платы и в видимых сквозных отверстиях. Пропорциональное масштабирование, размещение на предоставленном фоне и JPEG-сжатие. Геометрия, маркировка и видимые детали не перерисовывались. Цветокоррекция и повышение детализации не применялись. Адаптация фотографии распространяется по той же лицензии. Adafruit DS3231, изделие 5188, версия STEMMA QT; батарейка на снимке не показана.
Схема распиновки
Авторская распиновка SLDV LAB: Adafruit 5188, DS3231 STEMMA QT. Сторона микросхемы; контактный ряд снизу; позиции 1–8 слева направо. Для других ревизий и плат требуется отдельная проверка.
Схема и обложка относятся к Adafruit PID 5188 STEMMA QT, а не к старому PID 3013. Батарейка на фото не показана.
Источники: 1, 2, 3. Авторская схема SLDV LAB по фактам документации.
Характеристики
- Адрес RTC
- 0x68
- Генератор
- Температурно-компенсированный, встроенный
- Батарейка выбранной платы
- CR1220, 3 В, неперезаряжаемая
- Часовой пояс
- Программное соглашение; в RTC не хранится
- Интерфейс
- I²C
- Питание модуля
- Плата Adafruit PID 5188: Vin 3,3–5 В; в примере Vin/I²C 5 В и Uno R3. Резервная CR1220 — 3 В; для первого теста держатель оставлен пустым.
ПРАКТИКА
Подключение
| Контакт модуля | Контакт платы | Назначение |
|---|---|---|
| Vin | 5V | Adafruit PID 5188; I²C подтянут к Vin, поэтому такая схема для Uno R3, не ESP32. |
| GND | GND | Общая земля. |
| SDA | A4 / SDA | Один и тот же сигнал Uno R3; подтяжки к питанию модуля. |
| SCL | A5 / SCL | Порядок контактов на модуле определять по маркировке, не по положению. |
| BAT / держатель CR1220 | Не подключать в первом тесте | Позднее установить CR1220 правильной полярностью по руководству Adafruit; BAT не соединять с 5V. |
| SQW / 32K / RST | Не подключать | Для простого чтения календаря не используются. |
| STEMMA QT | Не подключать | В примере используются маркированные площадки Vin, GND, SDA, SCL. |
Подходит для Arduino. Выберите контакты по документации своей платы.
ВАШ ПРОЕКТ · ВАШ ДАТЧИК
Интегрируйте модуль с ChatGPT
Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.
Помоги интегрировать DS3231 Adafruit PID 5188. Сначала уточни точную плату модуля, контроллер, среду, питание и задачу. Проверь схему, логические уровни и маркировку контактов; затем дай согласованные подключение, зависимости и полный минимальный пример с обработкой ошибок. Объясни безопасную первичную проверку и ожидаемый результат. Уточни исполнение и тип резервного элемента, наличие зарядной цепи и нужный часовой пояс. Не предлагай заряжать CR-элемент и не устанавливай фиктивное текущее время.
Библиотеки
Установите библиотеку для своей среды и откройте пример из её документации.
Что именно прописать
- Плата и ядро
Arduino Uno R3; Arduino AVR Boards 1.8.6Распиновка относится к ATmega328P Uno R3; не Uno R4 и не ESP32.
- Библиотека
RTClib 2.1.4Установить с Adafruit BusIO; #include <RTClib.h>.
- Адрес
0x68Используется внутри RTC_DS3231, не адрес возможной EEPROM на чужом модуле.
- Установка времени
SET_TIME = falseЧтобы один раз записать своё время, исправить DateTime в коде и включить true, затем вернуть false и загрузить снова.
- Резервное питание
CR1220, 3 ВТолько для выбранной Adafruit-платы. Первый тест проводится без батарейки.
Arduino: полное чтение RTC с контролем потери времени
cpp#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
const bool SET_TIME = false;
bool ready = false;
void setup() {
Serial.begin(115200);
Wire.begin();
Wire.setWireTimeout(25000, true);
if (!rtc.begin(&Wire)) { Serial.println("DS3231 not found"); return; }
if (SET_TIME) {
// Перед включением SET_TIME замените все значения своим временем.
rtc.adjust(DateTime(2026, 10, 6, 12, 0, 0));
}
if (rtc.lostPower()) {
Serial.println("Time is not trusted: set it explicitly first");
return;
}
ready = true;
}
void loop() {
if (!ready) { delay(1000); return; }
Wire.beginTransmission(0x68);
if (Wire.endTransmission() != 0) {
Serial.println("RTC I2C error"); delay(1000); return;
}
DateTime now = rtc.now();
if (!now.isValid() || Wire.getWireTimeoutFlag()) {
Wire.clearWireTimeoutFlag();
Serial.println("Invalid time / bus timeout");
} else {
Serial.println(now.timestamp(DateTime::TIMESTAMP_FULL));
}
delay(1000);
}
Полный скетч для Uno R3, Arduino AVR Boards 1.8.6 и RTClib 2.1.4; API сверено. Приведённая дата является редактируемым примером, а не текущим временем. Компиляция и аппаратные испытания не выполнялись. isValid проверяет календарный формат, а не точность часов.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.


