Модуль часов реального времени DS1307 Tiny RTC I2C module 24C32 memory DS1307 clock
Небольшой модуль, выполняющий функции часов реального времени. Выполнен на базе микросхемы
DS1307ZN+. Непрерывный отсчет времени происходит благодаря автономному питанию от батареи, установленной в модуль. Также модуль содержит память EEPROM объемом 32 Кбайт, сохраняющую информацию при отключении всех видов питания. Память и часы связаны общей шиной интерфейса I2C. На контакты модуля выведены сигналы шины I2C. При подключении внешнего питания происходит подзарядка батареи через примитивную цепь подзарядки. На плате имеется место для монтажа цифрового датчика температуры DS18B20. В комплект поставки он не входит.
Использование этого устройства происходит при измерении временных интервалов более недели приборами на основе микроконтроллера. Задействовать собственные ресурсы МК для этой цели неоправданно, а зачастую невозможно. Обеспечить бесперебойное питание на длительный срок дорого, установить батарею для питания МК нельзя из-за значительного тока потребления. Тут на выручку приходит модуль часов реального времени DS1307.
Также модуль часов реального времени DS1307 благодаря наличию собственной памяти позволяет регистрировать данные событий, происходящих несколько раз в сутки, например измерения температуры. Журнал событий в дальнейшем считывается из памяти модуля. Эти возможности позволяют использовать модуль в составе автономной автоматической метеостанции или для исследований климата в труднодоступных местах: пещерах, вершинах скал. Становится возможным регистрировать тензопараметры архитектурных сооружений, например опор мостов и других. При оснащении прибора радиосвязью достаточно установить его в исследуемой местности.
Характеристики Напряжение питания 5 В
Размеры 27 х 28 х 8,4 мм
Электрическая схема Устройство обменивается данными с электроникой прибора с помощью сигналов SCL и SDA. Микросхема IC2 – часы реального времени. Конденсаторы С1 и С2 снижают уровень помех в линии питания VCC. Резисторы R2 и R3 обеспечивают надлежащий уровень сигналов SCL и SDA. С вывода 7 микросхемы IC2 поступает сигнал SQ, состоящий из прямоугольных импульсов частотой 1 Гц. Он используется для проверки работоспособности МС IC2. Компоненты R4, R5, R6, VD1 обеспечивают подзарядку батареи BAT1. Для хранения данных модуль часов реального времени DS1307 содержит микросхему IC1 – долговременная память. US1 – датчик температуры. Сигналы модуля и линии питания выведены на соединители JP1 и P1.
Информационная шина I2C это стандартный последовательный интерфейс посредством двух сигнальных линий SCL, SDA и общего провода. Линии интерфейса образуют шину. К линиям интерфейса I2C можно подключить несколько микросхем, не только микросхемы модуля. Для идентификации микросхемы на шине, а именно записи данных в требуюмую МС и определения от какой МС поступают данные. Каждая микросхема имеет уникальный адрес для проложенной шины. DS1307 имеет Адрес 0x68. Он записан на заводе-изготовителе. Микросхема памяти имеет адрес 0x50. В программное обеспечение Arduino входит программная библиотека, обеспечивающая поддержку I2C.
Микросхема часов реального времени DS1307 обладает низким энергопотреблением, обменивается данными с другими устройствами через интерфейс I2C, содержит память 56 байт. Содержит часы и календарь до 2100 г. Микросхема часов реального времени обеспечивает другие устройства информацией о настоящем моменте: секунды, минуты, часы, день недели, дата. Количество дней в каждом месяце учитывается автоматически. Есть функция компенсации для високосного года. Имеется флаг, чтобы определить, работают часы в 24-часовом режиме или 12-часовом режиме. Для работы в режиме 12 часов микросхема имеет бит, откуда считываются данные для передачи о периоде времени: до или после обеда.
Микросхема долговременной памяти ATHYC232 24C32N относится к классу памяти EEPROM серии AT24Cxx. Для этой МС часто применяется наименование AT24C32 или 24C32. Объем хранимых данных 32 Кбайт. Производится компанией Microchip, известной своими микроконтроллерами PIC или не менее известной компанией Atmel. Передача и прием данных происходит по шине I2C. Данные хранятся при отключенном питании на протяжении десятков лет. Количество циклов записи-стирания достигает сотен тысяч.
Датчик температуры DS18B20 Не входит в поставку. В углу платы расположено посадочное место из трех отверстий для датчика температуры
DS18B20 Его параметры перечислены далее.
Интерфейс 1-Wire
Диапазон измеряемых температур –55…125 °C
Программное обеспечение совместимо с DS1822
DS18B20 можно приобрести здесь
http://arduino-kit.ru/catalog/id/datchik-temperaturyi-ds18b20 Рисунок модуля часов реального времени DS1307 со стороны батареи с установленным датчиком температуры U1.
Батарея В держатель на обратной стороне платы устанавливается литиевая дисковая батарея CR2032. Она выпускается множеством производителей, например изготовленная фирмой GP обеспечивает напряжение 3,6 В и ток разряда 210 мАч. Батарея подзаряжается во время включения питания, с таким режимом работы литиевой батареи мы сталкиваемся на материнской плате компьютера.
Подзарядка батареи Восстановление заряда батареи происходит током сквозь компоненты: резистор R5 и диод D1. Резисторы R4 и R6 тоже участвуют в подзарядке. Кроме своей основной функции цепи вносят небольшие отрицательные свойства. Дело в том, что при работе батареи в режиме питания модуля через R4 и R6 происходит паразитный разряд батареи. Если модуль будет работать в такой системе, где подзарядка отсутствует, то R4, R5, R6 и VD1 следует удалить. Вместо R6 установить перемычку, как изображено на фото.
Программное обеспечение Для работы модуля в составе Arduino вполне подойдет устаревшая библиотека с сайта Adafruit под названием RTCLib. Скетч называется DS1307.pde. Существует
обновленная версия. Следует скачать архив, распаковать его, переименовать и скопировать библиотеку в свой каталог библиотек Arduino.
Подключение к Arduino Mega Для этого следует использовать скетчи
SetRTC устанавливает время в часах в соответствии со временем, которое указано в скетче.
GetRTC выводит время.
Оба скетча требуют библиотеку Wire и определить адрес I2C. Чтобы установить адрес часов на шине I2C, используйте этот
I2C сканер.
Соединение с Arduino Mega. Подключите SCL и SDA к соответствующим контактам 21 и 20 на Arduino Mega 2560. Подключите питание.
Соединение с Arduino Uno Установите время в скетче SetRTC и загрузите в Arduino. Затем нажмите кнопку сброса для установки часов. Теперь загрузите скетч GetRTC. Откройте последовательный монитор и смотрите. Есть специальная
библиотека времени. Она имеет много различных функций, которые могут быть полезны в зависимости от ситуации. Чтобы установить время, используя библиотеку нужно
скачать. При использовании скетча можно синхронизировать часы реального времени с часами персонального компьютера.
Домашняя страница Программная библиотека RTClib