Часы реального времени DS3231
Ардуино часы реального времени DS3231 - RTC часы обеспечивают высокую точность хода. Можно переводить часы в 24 или 12 часовой формат. У DS3231 также есть 2 будильника. Подключение DS3231 к ардуино или другим контроллерам осуществляется через I2C интерфейс.
Характеристики часов реального времени:
- Рабочее напряжение: 3,3 ... 5,5 В
- Низкое потребление
- Точность хода: 2 ppm
- Микросхемы: DS3231 и AT24C32
- Интерфейс: I2C
- Держатель батарейки: LIR2032
- Батарейка: не входит в комплект
- Размеры: 38 x 22 мм
Код arduino DS3231
#include "LowPower.h"
#include "Wire.h"
#include "DS3231.h" // скачать https://github.com/jarzebski/Arduino-DS3231
DS3231 clock;
void wakeUp()
{
detachInterrupt(0);
}
void setup()
{
pinMode(13, OUTPUT);
clock.begin();
clock.armAlarm1(false); clock.clearAlarm1();
clock.armAlarm2(false); clock.clearAlarm2();
clock.setAlarm1(0, 0, 0, 20, DS3231_MATCH_S, true);
}
void loop()
{
attachInterrupt(0, wakeUp, LOW);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
digitalWrite(13, HIGH); delay(3000);digitalWrite(13, LOW);
}
Распиновка модуля DS3231
| Вывод | Тип | Назначение |
|---|---|---|
| 32K | только выход | Сигнал 32 768 Гц от генератора часов, открытый сток |
| SQW | только выход | Прерывание будильника или меандр 1 Гц — 8 кГц, открытый сток, активный уровень низкий |
| SCL | только вход | Тактовая линия I2C |
| SDA | цифровой вход/выход | Линия данных I2C |
| VCC | вход питания | Питание 3,3–5,5 В |
| GND | вход питания | Общий провод |
С другой стороны платы выведены SCL, SDA, VCC и GND — они соединены с основными и нужны, чтобы подключить следом ещё один модуль I2C. На шине модуль занимает два адреса: 0x68 — часы DS3231 и 0x57 — память AT24C32 на 4 КБ.
Подключение DS3231 к Arduino
На Arduino Uno и Nano: SDA — к A4, SCL — к A5, VCC — к 5V, GND — к GND. На ESP32 по умолчанию SDA — GPIO21, SCL — GPIO22, питание 3,3 В. Чтобы будильник будил контроллер, SQW подключают к выводу прерывания — на Uno это D2.
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
rtc.begin();
if (rtc.lostPower()) // батарейки не было или села
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // время компиляции скетча
}
void loop() {
DateTime now = rtc.now();
Serial.print(now.hour()); Serial.print(':');
Serial.print(now.minute()); Serial.print(':');
Serial.println(now.second());
Serial.println(rtc.getTemperature()); // встроенный датчик, точность около 3 °C
delay(1000);
}
Батарейка в DS3231 CR2032 или LIR2032
На модуле стоит цепь подзарядки из диода и резистора 200 Ом, поэтому штатно в держатель ставят аккумулятор LIR2032. Обычную батарейку CR2032 заряжать нельзя: если хотите поставить её, выпаяйте этот диод или резистор. Точность хода 2 ppm — это примерно минута расхождения за год.
| Вес | 8 г |
Категории: Электронные модули
Часы реального времени DS3231 отзывы
Оставьте отзыв об этом товаре первым!