Часы реального времени DS1307

Микросхема DS1307 – экономичные часы реального времени с последовательным интерфейсом. Включает в себя  часы-календарь с представлением информации в двоично-десятичном коде и 56 байт энергонезависимой памяти NV SRAM. Адрес и данные передаются по двунаправленной двухпроводной последовательной шине. Информация о реальном времени и календаре представляется в секундах минутах, часах, дне, дате, месяце и годе. Если текущий месяц содержит менее 31 дня, то микросхема автоматически определит количество дней в месяце с учетом високосного года. Часы работают как в 24-часовом, так и в 12-часовом режимах с индикатором AM/PM. DS1307 имеет встроенную схему наблюдения за питанием, которая обнаруживает перебои питания и автоматически переключается на батарею.



Характеристики

  • часы реального времени (RTC) отсчитывают секунды, минуты, часы, дату месяца, месяц, день
  • недели и год с компенсацией високосного года, действительной до 2100 года
  •  56-байтовое энергонезависимое ОЗУ с питанием от батареи для хранения пользовательских данных
  • двухпроводной последовательный интерфейс
  • программируемый выходной сигнал с прямоугольными импульсами (для тактирования внешних устройств)
  • автоматическое обнаружение падения напряжение и схема переключения на батарею
  • потребление менее 500 нА в режиме батарейной поддержки при работающем тактовом генераторе
  • промышленный диапазон температур: от – 40 °C до + 85 °C
  • микросхема производится в 8-выводных корпусах DIP и SOIC.

Корпуса микросхемы DS1307

Назначение выводов

  • Vcc – источник питания +5 В
  • X1, X2 – подключение кварцевого резонатора 32.768 кГц
  • VBAT – вход батареи +3 В
  • GND – общий минус
  • SDA – последовательные данные
  • SCL – последовательные синхроимпульсы
  • SQW/OUT – выходной сигнал с прямоугольными импульсами

Модуль с часами DS1307

Небольшой модуль на микросхеме  DS1307ZN+  для проектов на микроконтроллерах,  которые не имеют встроенной функции RTC. Имеет память EEPROM объемом 4 Кб,  сохраняющую информацию при отключении всех видов питания. Память и часы связаны интерфейсом I2C. Наличие собственной памяти позволяет регистрировать данные событий, происходящих несколько раз в сутки, например,  изменение температуры. На плате имеется место для монтажа датчика температуры DS18B20 (в комплект поставки не входит). Данные в дальнейшем считываются из памяти модуля.

Модуль RTC 1307 для Arduino
Внешний вид модуля RTC 1307

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

Модуль имеет необходимые подтягивающие резисторы,  поэтому не нужно добавлять свои собственные. Как и все устройства, подключенные к шине I²C, постарайтесь свести к минимуму длину проводов линий SDA и SCL.

Подключите выводы SCL к A5, SDA к A4 Arduino,  вывод Vcc — к  5V,  GND — к GND.

Подключение RTC DS1307 к Arduino Uno
Схема подключения RTC DS1307 к Arduino Uno

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

Загрузите демонстрационный скетч, который выведет текущее время и дату в Монитор порта. Значения необходимо предварительно установить в функции  setDS3231time  (строка 19 программы ).  Вставьте значения от секунды  до года и часы запустятся с этого времени. Формат установочных данных :

где 30 — секунды, 55 — минуты, 19 — часы, 4 — день недели, 12 — число месяца, 8 — месяц, 21 — год. После установки данных необходимо загрузить скетч, затем закомментировать строку 19 и опять загрузить скетч.

На Мониторе последовательного порта  можно увидеть текущее время и дату.

Вывод данных из DS1307 на Монитор порта Arduino IDE
Вывод данных из DS1307 на Монитор порта Arduino IDE