Подключение часов DS3231

Часы DS3231 обладают высокой точностью. Они подключаются к Arduino по протоколу I2C двумя проводами, плюс питание и земля. Подключение к Arduino Pro Mini: A4 — SDA, A5 — SCL, VCC — VCC, GND — GND. Datasheet можно посмотреть здесь DS3231.

Снимок экрана 2015-04-25 в 13.14.52

Я использовал библиотеку — DS3231RTC.h, скачать ее можно здесь https://github.com/trunet/DS3231RTC. Она используется совместно с библиотекой Time.h, последнюю версию можно взять здесь: https://github.com/PaulStoffregen/Time.

Примеры использования:

tmElements_t tm; // Структура для хранения времени
RTC.read(tm); // Чтение времени
RTC.write(tm); // Установка времени

Структура tmElements_t описана в Time.h:

typedef struct {
uint8_t Second;
uint8_t Minute;
uint8_t Hour;
uint8_t Wday; // day of week, sunday is day 1
uint8_t Day;
uint8_t Month;
uint8_t Year; // offset from 1970;
} tmElements_t, TimeElements, *tmElementsPtr_t;

Там же находятся полезные константы и функции. Среди них:

//convenience macros to convert to and from tm years 
#define  tmYearToCalendar(Y) ((Y) + 1970)  // full four digit year 
#define  CalendarYrToTm(Y)   ((Y) - 1970)
#define  tmYearToY2k(Y)      ((Y) - 30)    // offset is from 2000
#define  y2kYearToTm(Y)      ((Y) + 30)  

void breakTime(time_t time, tmElements_t &tm); // break time_t into elements
time_t makeTime(tmElements_t &tm); // convert time elements into time_t

Подключение часов DS3231: 2 комментария

  1. Уважаемый автор, а не проверяли — какое минимальное напряжение питания у этих часов ? У меня устройство в питанием 3 вольта и с часами ds1338 -33, при снижении питания до 2,9в уже не работает. Ищу замену часикам.

  2. Мин напряжение питания 2,3V. Так написано в спецификации, сам не проверял. Пост отредактировал, в нем теперь есть ссылка на datasheet.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *