Arduino для начинающих. Урок 11. Подключение модуля часов реального времени DS3231
Продолжаем серию уроков «Arduino для начинающих«. Знакомимся с модулем часов реального времени DS3231. В статье видео-инструкция, листинги программ, назначение и способы подключения к Arduino модулей из семейства DS.

Модуль часов реального времени DS3231
Что такое модуль часов реального времени DS3231?
Модуль часов реального времени — это электронная схема, предназначенная для учета хронометрических данных (текущее время, дата, день недели и др.), представляет собой систему из автономного источника питания и учитывающего устройства.
Модуль DS3231 по сути представляет из себя обыкновенные часы. В платах Arduino уже есть встроенный датчик времени Millis, однако он работает только при поданном питании на плату. При отключении и дальнейшем включении Arduino отсчет времени Millis сбросится до нуля. А DS3231 имеет на борту батарейку, которая даже при отключенной плате Arduino продолжает «питать» модуль, позволяя ему измерять время.
Модуль можно использовать в качестве часов или будильника, построенных на базе плат Arduino. Или же в качестве оповещения для различных систем, к примеру в «Умном доме».
Технические характеристики DS3231:
- модуль производит подсчет часов, минут, секунд, дат, месяцев, лет (високосные года учитываются до 2100 года);
- для подключения к различным устройствам, часы подключаются по I2C интерфейсу.
32К — Выход, частота 32 кГц.
SQW — Программируемый выход Square-Wave сигнала.
SCL – Через этот пин по интерфейсу I2C происходит обмен данными с часами.
SDA – Через этот пин передаются данные с часов.
VCC – Питание часов реального времени, нужно 5 вольт. Если на этот пин не поступает напряжение, часы переходят в спящий режим.
GND — Земля.
Схема подключения часов реального времени DS3231 и простейшая программа
Пины SDA и SCL на разных платах Arduino:
SDA | SCL | |
UNO | A4 | A5 |
Mini | A4 | A5 |
Nano | A4 | A5 |
Mega2560 | 20 | 21 |
Leonardo | 2 | 3 |
Подключим модуль часов реального времени к Arduino UNO. SDA — пин A4, SCL — пин A5.
Для работы модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):
#include
iarduino_RTC time(RTC_DS3231);
void setup() {
delay(300);
Serial.begin(9600);
time.begin();
}
void loop(){
if(millis()%1000==0){ // если прошла 1 секунда
Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
delay(1); // приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс
}
}
В данном скетче просто идет отсчет времени.
В первую очередь в сктече подключение библиотеки iarduino_RTC.h.
Там же укажите точное название своего модуля для корректной работы с ним.
Дальше укажите задержку включения модуля в сравнении с включением самой платы и укажите скорость для работы с монитором порта.
В итоге получаем вывод времени с модуля DS3231 в монитор порта. Идет вывод часов, минут, секунд.
В следующем скетче добавим функцию settime, позволяющую установить начальное время отсчета.
#include
iarduino_RTC time(RTC_DS3231);
void setup() {
delay(300);
Serial.begin(9600);
time.begin();
time.settime(0,0,18,24,04,17,1); // 0 сек, 0 мин, 18 час, 24, апреля, 2017 года, понедельник
}
void loop(){
if(millis()%1000==0){ // если прошла 1 секунда
Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
delay(1); // приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс
}
}
В примере время начинает отсчитываться с 0 сек, 0 мин, 18 час, 24, апреля, 2017 года, понедельник.
Смотрите также:
Учебный курс «Arduino для начинающих»: главная страница.
Посты по урокам:
- Первый урок: Светодиод.
- Второй урок: Кнопка.
- Третий урок: Потенциометр.
- Четвертый урок: Сервопривод.
- Пятый урок: Трехцветный светодиод.
- Шестой урок: Пьезоэлемент.
- Седьмой урок: Фоторезистор.
- Восьмой урок: Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail.
- Девятый урок: Подключение датчика температуры и влажности DHT.
- Десятый урок: Подключение матричной клавиатуры и интересные схемы.
Все посты сайта «Занимательная робототехника» по тегу Arduino.
YouTube канал Занимательной робототехники и YouTube канал ArturosTV, где публикуются видео-уроки.
Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазин Амперка. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.
ARSLEE
18.05.2017
Боже, наконец новый урок!
)))0)
Дмитрий
02.07.2017
Аффтар — убейся! Устройств на шине I2C может быть до 127-ми штук!
Aasssadsad
04.07.2017
Здесь не только ролика по сбору нету так ещё и схемы!
Shurovik
23.07.2017
А зачем схема-то? Питание — обычное 5 В, SDA/SCL расписаны (А4/А5 соответственно). Слишком все просто.
Николай
10.09.2017
Для чего?Что нового сказал?Даже не собрал ничего.Вывод в терминал?Автора-в топку!!!! Пукстопорожней болтовней только нет мусорит
32К — Выход, предназначенный для подачи внешнего питания >12В ??!!!!
30.11.2017
разве это не новое????
Занимательная робототехника
02.09.2020
Спасибо, Автор исправил
Игорь
14.10.2017
В третьей версии UNO есть отдельные выводы SDA и SCL, а вообще для наглядности можно было и на макетке распараллелить и экран подключить.
Руслан
28.05.2018
вот про АЙТУСИ ты молодец конечно
DLRex
14.07.2018
Автор абсолютно не знает этот модуль. Как можно было назвать вывод 32К входом по питанию?!
Занимательная робототехника
02.09.2020
Спасибо, Автор исправил информацию о контакта 32К: Выход, частота 32 кГц
ole
01.06.2019
Не будет твой скетч работать!!!
Необходимо добавить вначале
#include
#include
Vladimir
30.07.2020
Что за ***фигню вы написали???
32К — Выход, предназначенный для подачи внешнего питания >12В.
С этого контакта выходят испульсы с частотой 32768 Гц/
Вы вредитель. Ведь кто-то может и подать на этот пин 12 В.
Вы **** ***.
Занимательная робототехника
02.09.2020
Спасибо, Автор исправил информацию о контакта 32К: Выход, частота 32 кГц