Модуль часов с автономным питанием 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 сек
}