Проект 26: Годинник реального часу. Принцип роботи, підключення, приклади
В цьому експерименті ми розглянемо модуль годин реального часу на мікросхемі DS1307.
Мікросхема Dallas DS1307 є годинник реального часу з календарем і додатковою пам'яттю NW SRAM (56 байт). Мікросхема підключається до мікроконтролера за допомогою шини I2C. Кількість днів у місяці розраховується з урахуванням високосних років до 2100 р мікросхемі DS1307 є вбудована схема, яка визначає аварійне відключення живлення і автоматично підключає резервну батарейку. При цьому відлік часу продовжується, і після відновлення живлення годинник показує правильний час. Також в цій мікросхемі є програмований генератор прямокутних імпульсів, що дозволяє виробляти одну з чотирьох частот (1 Гц, 4096 Гц, 8192 Гц або 32768 Гц).
Годинники підключаються по протоколу I2C всього двома проводами. SCL і SDA - це висновки інтерфейсу I2C. Необхідно додатково підтягти висновки, до яких підключаються годинник до шини харчування, за допомогою резисторів 2 кОм. SCL і SDA на різних платах розташовані на різних висновках:
• Uno, Nano - A4 (SDA), A5 (SCL);
• Mega2560 - 20 (SDA), 21 (SCL);
• Leonardo - 2 (SDA), 3 (SCL).
Висновок SDA годин підключається до висновку SDA контролера. SDL годин - відповідно, до SDL контролера. У нашому експерименті ми будемо виводити дату і час, одержувані з мікросхеми DS1307, на екран LCD індикатора WH1602. Схема підключення показана на рис. 26.1.
Мал. 26.1. Схема підключення модуля DS1307 і WH1602 до Arduino
При написанні скетчу використовуємо бібліотеку Time, яка є «обгорткою» для бібліотеки DS1307, і бібліотеку Wire для роботи з I2C-пристроями. Для роботи з РКІ використовуємо бібліотеку LiquidCrystal. Вміст скетчу показано в лістингу 26.1.
Тепер встановимо час з монітора послідовного порту відправкою рядки «dd / mm / YYYY hh: mm: ss» і побачимо на екрані дисплея відображення вірної дати і часу.