Модуль часов с автономным питанием DS-3231
Описание
Модуль часов реального времени с независимым питанием. Контроллеры Arduino/Genuino не имеют встроенных часов реального времени. Для работы со временем есть функция millis(). Однако, для проектов где требуется время и дата, возможностей данной функции недостаточно и на помощь приходят часы реального времени.
Модуль DS3231 - это недорогие, точные, с работой по протоколу I2C часы реального времени, с температурной компенсацией TCXO. Устройство содержит разъём для батареи типа CR2032 и поддерживает точный отсчет времени когда питание устройства прерывается. Часы поддерживают информацию о секундах, минутах, часах, дне, месяце и годе. Дата на конец месяца автоматически корректируется, для месяцев, содержащих менее чем 31 день, включая коррекцию по високосному году. Работают в одном из режимов: 24- или 12-часовом формате (с AM/PM индикатором). Имеют два программируемых будильника.
Основные характеристики часов:
- Часы реального времени с подсчетом секунд, минут, часов, дня, месяца и года (с корректировкой дат в т.ч. по високосному году до 2100 года)
- Погрешность хода: ±2 минуты в год
- Температурный датчик с погрешностью ±3°С
- Два будильника
Технические характеристики
- Рабочая температура: -40°С - +85°С
- Напряжение питания: 2,3 - 5,5 В
- Напряжение питания батареи: 2,3 - 5,5 В
- Максимальное потребление тока: 650 нА
Физические размеры
- Модуль (Д х Ш х В): 45 х 23 х 15 мм
Плюсы использования
- Высокая точность хода часов
- Имеется два будильника с функцией прерывания
- Широкий диапазон рабочей температуры
Минусы использования
- Дороже некоторых аналогов
Библиотека для работы с модулем
Примеры подключения и использования
Пример 1: В примере иллюстрируется подключение модуля часов к контроллеру, установка времени и даты на часах, вывод времени, даты и дня недели в монитор Serial-порта, а также получение температуры с текущего модуля. (Примеры тестировались на контроллере Smart UNO)
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Модуль часов DS-3231 | 1 |
Провода папа-мама | 4 |
Скетч для загрузки:
//Подключение библиотек #include <Wire.h> #include "DS3231.h" DS3231 RTC; //Создание объекта DS3231 char weekDay[][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; //Создание массива дней недели //Создание переменной типа DateTime для задания даты в формате: //год, месяц, день, час, минута, секунда и день недели (от 0 - воскресенье до 6 - суббота) DateTime dt(2016, 8, 22, 16, 10, 0, 1); void setup () { Serial.begin(9600); //инициализация Serial-порта Wire.begin(); //инициализация библиотеки Wire RTC.begin(); //инициализация часов RTC.adjust(dt); //Задание даты-времени так как она задана в переменной dt } void loop () { DateTime now = RTC.now(); //получение текущей даты и времени //вывод полученного года Serial.print(now.year(), DEC); Serial.print('/'); //вывод месяца Serial.print(now.month(), DEC); Serial.print('/'); //дня Serial.print(now.date(), DEC); Serial.print(' '); //часа Serial.print(now.hour(), DEC); Serial.print(':'); //минут Serial.print(now.minute(), DEC); Serial.print(':'); //секунд Serial.print(now.second(), DEC); Serial.println(); //дня недели Serial.print(weekDay[now.dayOfWeek()]); Serial.println(); delay(1000); //задержка на 1 сек RTC.convertTemperature(); //конвертация текущей температуры в регистрах Serial.print(RTC.getTemperature()); //чтение регистров и вывод полученной температуры Serial.println(" C"); delay(1000); //задержка на 1 сек }