Подключение модуля часов реального времени DS3231 к Arduino


Первый вопрос, который может возникнуть у читателя этой статьи, заключается в том, зачем нам на самом деле нужен отдельный модуль часов реального времени (Real Time Clock, RTC) для нашего проекта Arduino, если в самой Arduino есть встроенный таймер. Но суть здесь в том, что модуль RTC работает от батарейки и может отслеживать время, даже если мы перепрограммируем микроконтроллер или отключим его основное питание.

Подключение модуля часов реального времени DS3231 к Arduino

В данной статье мы рассмотрим как подключить модуль часов реального времени DS3231 к плате Arduino. Также на нашем сайте вы можете посмотреть все проекты с использованием модуля DS3231.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress) или Arduino Mega 2560 (купить на AliExpress).
  2. Модуль часов реального времени DS3231 RTC (купить на AliExpress).

Модуль часов реального времени DS3231

DS3231 — это недорогие и высокоточные часы реального времени, которые могут хранить часы, минуты и секунды, а также информацию о дне, месяце и годе. Кроме того, предусмотрена автоматическая компенсация за високосные годы и месяцы с числом менее 31 дня.

Модуль часов реального времени DS3231

Модуль может работать как от 3,3, так и от 5 В, что делает его пригодным для многих платформ разработки или микроконтроллеров. Входное напряжение батареи составляет 3 В, а типичная батарея CR2032 3 В может питать модуль и сохранять информацию более года.

Основные возможности модуля часов реального времени DS3231

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

Схема проекта

Схема подключения модуля часов реального времени DS3231 к плате Arduino представлена на следующем рисунке.

Схема подключения модуля часов реального времени DS3231 к плате Arduino

Итак, все, что нам нужно, это 4 провода, контакты VCC и GND для питания модуля, а также два контакта интерфейса I2C: SDA и SCL.

Программирование

После подключения модуля нам нужно запрограммировать плату Arduino для работы с часами реального времени. Однако когда дело доходит до программирования связи между Arduino и модулем I2C, код не такой уж маленький и простой. К счастью, для DS3231 RTC уже есть несколько библиотек, которые можно найти в Интернете.

Для этого урока я решил использовать библиотеку Хеннинга Карлсена, которую можно найти и загрузить с его сайта www.rinkydinkelectronics.com .

Итак, как только мы загрузим и установим библиотеку, мы сможем использовать ее первый демонстрационный пример, чтобы первоначально активировать часы модуля RTC. В разделе настройки кода демонстрационного примера мы можем заметить, что есть три строки, которые нам нужно раскомментировать, чтобы изначально установить день недели, время и дату.

Первая строка предназначена для установки дня недели, вторая строка — для установки времени в часах, минутах и ​​секундах, третья строка — для установки даты в днях, месяцах и годах.

Как только мы загрузим этот код, нам нужно будет закомментировать три строки и повторно загрузить код.

Если мы посмотрим на раздел кода, посвященный циклу, то увидим, что теперь, используя три пользовательские функции, мы получаем информацию от модуля часов реального времени и печатаем ее в последовательном мониторе. Вот как они выглядят в Serial Monitor.

Данные с модуля часов реального времени в окне монитора последовательной связи

Теперь, даже если мы отключим питание Arduino, а затем снова подключим его и снова запустим последовательный монитор, мы заметим, что время продолжает идти без сброса.

Итак, теперь у нас есть часы реального времени, которые работают, и мы можем использовать их в любом проекте Arduino. В качестве второго примера я подключил ЖК-дисплей к Arduino и вывел на него время и дату.

Подключение к Arduino модуля часов реального времени DS3231 и ЖК дисплея

Вот исходный код этого примера:

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
62 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *