Часы реального времени ds3231 подключение к arduino

Часы реального времени ds3231 подключение к 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.

Питание 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

После установки откройте пример из библиотеки

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

Загрузите скетч в плату, после чего откройте монитор последовательного порта (Ctrl+Shift+M).
Вы увидите неправильные данные, но не переживайте – это потому, что для работы надо установить календарь и время самостоятельно. Это делается один раз, при включении. И потребуется ещё раз только если разрядится батарея.

Читайте также:  Макеты зданий из коробок

Ну вот и всё. DS3231 RTC Arduino очень простой и интересный модуль.

В ближайшее время я напишу статью как подружить этот модуль с 4-х разрядным, семисегментным индикатором с контроллером TM1637, 4 цифры, двоеточие.
LED TM1637

Подписывайтесь и не пропустите новые интересные статьи и описания различных модулей.

Сайт для радиолюбителей

Часы с будильником состоят из платы Arduino Nano (Uno), LCD индикатора 1602 и модуля часов реального времени DS3231 (ZS-042). Помимо текущего времени на экране индикатора отображается дата, день недели, месяц, год и температура. Будильник в часах один, он позволяет выставить время срабатывания в минутах и часах, так же предусмотрено его отключение, а так же работа каждый день, в будние дни и по выходным. Установка времени срабатывания будильника осуществляется кнопками «К», «+» и «-«. Сигнал будильника звучит в течении одной минуты, но если нажать на одну из кнопок «+» или «-«. сигнал будильника можно прервать. Время срабатывания будильника и режим его работы сохраняются в энергонезависимой памяти.

Устанавливать время на часах не нужно, так как предусмотрена коррекция времени при прошивке микроконтроллера. Для этого необходимо раскомментировать строчку:

Далее залейте скетч в плату, закомментируйте строчку и залейте скетч повторно.

Второй вариант часов с будильником выполнен с использованием четырех разрядного семисегментного индикатора на базе драйвера TM1637 (модуль TM1637).

При нажимании кнопки «К» происходит перебор элементов меню, вывод секунд, даты и месяца, температуры, установка времени будильника, включение или отключение будильника, яркость индикатора.

Для подключения RTC часов реального времени DS1302, DS1307, DS3231, была разработана универсальная библиотека.

Подключение:

Подключение DS1307 к Arduino :

RTC DS1307 Arduino UNO
GND GND
VCC +5V
SDA A4
SCL A5

Подключение DS1302 к Arduino :

RTC DS1302 Arduino UNO
GND GND
VCC +5V
RST 10 (Можно изменить на другие в скетче)
CLK 13 (Можно изменить на другие в скетче)
DAT 12 (Можно изменить на другие в скетче)

Подключение DS3231 к Arduino :

RTC DS3231 Arduino UNO
GND GND
VCC +5V
SDA A4
SCL A5

Программа:

В зависимости от того какой модуль Вы подключаете, необходимо в программе указать

Для DS1307:

Для DS1302 :

Для DS3231 :

Пример установки текущего времени в RTC модуль (DS1307):

Пример считывания текущего времени с RTC модуля (DS1307) и вывод в "Последовательный порт" :

Читайте также:  Как заправить нить в оверлок китайский

Преимущества библиотеки:

— библиотека имеет внутренние функции аппаратной обработки протоколов передачи данных I2C и SPI, а следовательно не требует подключения дополнительных библиотек, но и не конфликтует с ними, если таковые всё же подключены.

— библиотека имеет внутренние функции программой обработки протокола передачи данных 3-Wire

— для инициализации модуля необходимо вызвать функцию begin с названием модуля.

— подключение модулей осуществляется к аппаратным выводам arduino используемой шины (за исключением 3-Wire)

— простота установки и чтения времени функциями settime и gettime

функция settime может устанавливать дату и время, как полностью, так и частично (например только минуты, или только день, и т.д.)

функция gettime работает как функция date в php, возвращая строку со временем, но если её вызвать без параметра, то функция ничего не вернёт, а время можно прочитать из переменных в виде чисел.

— библиотека расширяемая, то есть для того, чтоб она работала с новым модулем, нужно указать параметры этого модуля в уже существующих массивах файла RTC.h (тип шины, частота шины в кГц, режимы работы, адреса регистров и т.д.), как всё это сделать, описано в файле extension.txt

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

36 байт, при этом не затронув область памяти программ.

— при вызове функции begin, библиотека читает флаги регистров модуля и при необходимости устанавливает или сбрасывает их так, чтоб модуль мог работать от аккумуляторной батареи, а на программируемом выводе меандра (если таковой у модуля есть) установилась частота 1Гц, тогда этот вывод можно использовать в качестве внешнего посекундного прерывания.

— при работе с модулем DS1302 не нужны никакие резисторы на выводе GND (которые нужны для его работы с другими библиотеками этого модуля), это достигнуто тем, что для шины 3-Wire указана конкретная частота 10кГц, не зависимо от частоты CPU arduino.

— в библиотеке реализована еще одна не обязательная функция period, принимающая в качестве единственного аргумента — количество минут (от 1 до 255)

если в течении указанного времени была вызвана функция gettime несколько раз, то запрос к модулю по шине будет отправлено только в первый раз, а ответом на все остальные запросы будет сумма времени последнего ответа модуля и времени прошедшего с этого ответа.

Функцию period достаточно вызвать один раз.

Ссылка на основную публикацию
Цветы старшая группа из бумаги
Валентина Валерьевна Саясова Мастер-класс «Цветы из бумаги на все случаи» Здравствуйте, уважаемые коллеги и гости МААМ! Предлагаю вашему вниманию результат...
Хуавей или айфон что лучше отзывы
Смартфоны от компании Apple выпускаются уже более 10 лет, и по качеству остаются на высшем уровне. IPhone X после выхода...
Хуавей р20 лайт характеристики
Обзор Huawei P20 Lite Huawei P20 Lite — смартфон среднего класса, который в плане дизайна сильно напоминает iPhone X. Аппарат...
Цветы цветущие в середине лета
Пожалуй, каждому хотелось бы превратить свою усадьбу в маленький райский уголок, где можно отдохнуть от повседневной суеты душой и телом....
Adblock detector