Модуль реального времени DS1307
Некоторые устройств с использованием контроллеров требуют отсчета времени в режиме реального времени. В большинстве из них это реализовано на аппаратном уровне — к примеру на платах Arduino имеется встроенный таймер. С помощью функции millis() можно отсчитывать время работа контроллера, начиная с его включения. Недостаток встроенного таймера заключается в том, что он не является энергонезависимым — при отключении питания от платы таймер обнуляется и отсчет начинается сначала. А для многих проектов это недопустимо: в системах автополива нужно включать насосы только в определенные часы и дни, а в моменты "перерыва" плату контроллера погружают в сон (с целью повышения энергоэффективности).
С помощью модуля DS1307 на одноименном микросхеме можно реализовать энергонезависимый отсчет времени. В него встроен разъем под литиевую батарейку кнопочного типа (рекомендуем использовать Smartbuy CR2032/1B). Благодаря батарейке, питание на модуль будет поступать во время "спячки" контроллера. В таком режиме она может прослужить несколько месяцев. Также в семействе этих модулей имеется DS1302, который отличается самым низким энергопотреблением (до 300 нА).
С помощью модуля можно считать время во всех форматах: от секунды до года, а также в 12-часовом и 24-часовом режимах. Используйте эту библиотеку для написания кода под DS1307, а также другие модули реального времени. Также есть вполне рабочая библиотека от Adafruit.
Подключение модуля:
Для подключения к контроллеру имеются две группы контактов:
Работа по I2C интерфейсу + контакт для подключения датчика температуры (учитывая показания температуры, можно достичь большей точности показания):
"VCC" — питание 5 В*
"GND" — заземление (к контакту "GND" на плате)*
* — вместо подключения питания от контроллера можно обойтись только батарейкой
"DS" — вывод для подключения датчика температуры DS18B20
"SCL" — к контакту A5 на плате Arduino Uno (контакт для работы с I2C интерфейсом)
"SDA" — к контакту А4 на плате Arduino Uno (контакт для работы с I2C интерфейсом, на разных платах их назначение может меняться, например, на Arduino Mega это контакты A20 и A21)
Контакты для работы по SPI и I2C интерфейсу (не обязательно использовать все контакты: достаточно только первых четырех)
"SCL" — сигнальная линия I2C интерфейса (выше описано подключение)
"SDA" — сигнальная линия I2C интерфейса (выше описано подключение)
"VCC" — питание 5 В
"GND" — заземление (к контакту "GND" на плате)
"BAT" — контакт, связанный с батарейкой
Визуальная схема подключения показана на картинке ниже:
Популярные проекты с использованием модуля:
- Включение устройств в определенное время (автополив, солнечный трекер)
- Электронное табло с календарем
Характеристики модуля:
- Интерфейс для обмена данными: I2C
- Возможные частоты работы модуля: 1 Гц, 4.096 КГц, 8.192 КГц, 32.768 КГц
- Точность измерений: до 2,5 секунд в сутки
- Объем памяти: 56 байт
- Потребляемый ток (max): 120 мА
- Рабочее напряжение: 5 В
- Рабочая температура: -40...+85°C
- Размер: 28 x 27 x 9 мм
Модули, шилды | |
Фильтр | Время |