DS3231 RTC Arduino
Ещё один интересный модуль для Arduino ZS-042 – это модуль часов Модуль RTC (Real Time Clock - часы реального времени) DS3231 с интерфейсом I2C(TWI).
Для микросхемы не нужен внешний кварцевый резонатор, благодаря встроенному термокомпенсированному кварцевому генератору (TCXO) с частотой 32,768 кГц.
У микросхемы есть вход для подключения батарейки, и благодаря питанию от батареи поддерживается точный отсчет времени даже когда питание системы отключается.
Интеграция кварцевого резонатора в корпус микросхемы улучшило стабильность точности хода часов.
Модуль DS3231 RTC Arduino собран на микросхеме DS3231 и модуле памяти EEPROM на микросхеме 24C32 объемом 32 Кбит от производителя Atmel. Может работать как совместно с Arduino, так и отдельно (необходима батарейка CR2032).
Связь модуля с Arduino происходит по сетевому последовательному интерфейсу I2C(Inter-IntegratedCircuit) с максимальной скоростью 400 кГц, разработанному фирмой Philips.
Для питания часов и памяти модуля в автономном режиме необходима батарейка CR2032.
Модуль отслеживает состояние VCC для обнаружения сбоев питания и при необходимости автоматически переключается на резервный источник питания.
Модуль позволяет устанавливать и считывать: секунды, минуты, часы, дни, дни недели, месяц, год, а так же температуру и есть возможность установки 2-х будильников.
Что может модуль DS3231 RTC Arduino
• Установить календарь до 2100 года с учётом високосных лет
• Выбор режимов 12(AM/PM) или 24-часового режима
• Возможность настроить 2 будильника
• Использовать в качестве генератора прямоугольных импульсов
• Измерять температуру микросхемы для температурной компенсацией кварцевого генератора (TCXO). Она практически не нагревается поэтому можно сказать, что она равна температуре окружающей среды
Характеристики
• Микросхема: DS3231
• Рабочее напряжение: 3,3 В - 5 В.
• Потребляемый ток (в режиме ожидания): до 170 мкА.
• Потребляемый ток (во время передачи данных): до 300 мкА.
• Потребляемый ток (во время резервного питания, без передачи данных): до 3,5 мкА.
• Тактовая частота шины I2C: до 400 кГц.
• Рабочая температура: 0 ... 70 °C.
• Точность хода: ±2 ppm (примерно ± 1 минута в год) при температуре от 0 до 40С
• внутренний термометр с диапазоном от −40…+85°C.
• Размер: мм 38 мм (длина) мм * 22 мм (Ш) мм * 14 мм (высота)
• Вес: 8 г
ppm(partspermillion) – частей на миллион.
На основе этого модуля DS3231 можно построить
Часы, будильник, секундомер, генератор прямоугольных импульсов, термометр, включать/выключать внешние устройства по расписанию
На модуле выведена гребёнка контактов. Для удобного использования контакты расположены с двух сторон платы.
Теперь немного о самом модуле.
построен он на микросхеме DS3231N.
Резисторная сборка RP1 (4.7 кОм),
необходима для подтяжки линий 32K, SQW, SCL и SDA (кстати, если используется несколько модулей с шиной I2C, необходимо выпаять подтягивающие резисторы на других модулях).
Вторая сборка резисторов, необходима для подтяжки линий A0, A1 и A2, необходимы они для смены адресации микросхемы памяти AT24C32N.
Резистор R5 и диод D1, служат для подзарядки батареи.
Микросхема памяти EEPROM AT24C32N .
Резистор R1 и светодиод Power, работают как индикатор, показывая, что модуль включен.
Модуль DS3231 RTC Arduino связывается с Arduino по шине I2C(TWI), для удобства монтажа они выведены с двух сторон модуля, J1 и J2.
Datasheet DS3231 англ.
Datasheet DS3231 рус.
Скетч установки времени в модуле DS3231.
Питание DS3231 RTC Arduino
Если модуль питается от платы Arduino, то он не использует батарею на модуле.
При питании от батарейки модуль отслеживает дату и время, но не работает с шиной I2C.
При отсутствии обоих источников питания модуль прекращает работать и сбрасывает все данные в заводские настройки.
С резервной батарейкой часы способны проработать несколько лет.
Группы контактов - J1
• 32K: выход генератора, частота 32 кГц
• SQW: Выход прямоугольного(Square-Wave) сигнала.
• SCL: Serial CLock - шина тактовых импульсов интерфейса I2C
• SDA: Serial Data - шина данных интерфейса I2C;
• VCC: «+» питание модуля
• GND: «-» питание модуля
Группы контактов - J2
• SCL: линия тактирования (Serial CLock)
• SDA: линия данных (Serial Data)
• VCC: «+» питание модуля
• GND: «-» питание модуля
Подключение модуля DS3231 RTC Arduino к шине I2C
(например, для Arduino UNO, Nano, Pro Mini):
SCL → A5
SDA → A4
VCC → +5 В
GND → земля
Подключение происходит по двухпроводной шине I2C(TWI)
Выводы SDA и SCL подключаются к аналогичным выводам на Arduino Питание VCC к +5 Вольт, а GND к GND на плате Arduino
Пины SDA и SCL на разных платах Arduino:
SDA SCL
UNO A4 A5
Mini A4 A5
Nano A4 A5
Mega2560 20 21
Leonardo 2 3
Для работы необходимо установить библиотеку DS3231
После установки откройте пример из библиотеки
или запустите пример установки даты и времени из скаченной папки. Это тот же пример, но с комментариями на русском языке и добавлено измерение температуры.
Скетч установки времени в модуле DS3231.
Загрузите скетч в плату, после чего откройте монитор последовательного порта (Ctrl+Shift+M).
Вы увидите неправильные данные, но не переживайте – это потому, что для работы надо установить календарь и время самостоятельно. Это делается один раз, при включении. И потребуется ещё раз только если разрядится батарея.
Ну вот и всё. DS3231 RTC Arduino очень простой и интересный модуль.
В ближайшее время я напишу статью как подружить этот модуль с 4-х разрядным, семисегментным индикатором с контроллером TM1637, 4 цифры, двоеточие.
LED TM1637
Подписывайтесь и не пропустите новые интересные статьи и описания различных модулей.
Дополнительные материалы по теме
Самодельные часы с кукушкой и боем курантов
Мир удивительных часов. Часы с кукушкой или с боем.
DS3231 Подключение к Arduino, настройка и установка времени.
часы на ардуино с дисплеем tft и ds3231
Часы на Ардуино без модуля часов
"Модуль часов RTC DS3231" Урок № 7
DS3231 Подключение к Arduino, настройка и установка времени.
DS3231 Настройка даты и времени. Управление энкодером.
часы на светодиодах ws2812
DS3231 подключение
Точное Время. Проекты с модулем часов DS3231 на Arduino и ESP8266