Необходимое Оборудование
Плата Arduino UNO * 1
Модуль Часов DS3231 * 1
Перемычки * 1
USB - кабель * 1
Спецификация
• Диапазон температур от -40 до +85
• Точность времени ± 5ppm (±0.432 секунды / день)
• Предоставляет резервное питание батареи для непрерывного времени
• Низкое энергопотребление
• Устройство упаковки и функции совместимы с DS3231
• Полная функция календаря часов содержит секунды и минуты, часы, неделю, дату, месяц и год с компенсацией високосного года до 2100 года
• Две часовые календарные функции
• Выход 1Гц и 32.768кГц
• Сброс выхода и подавление дребезга кнопки ввода
• Высокоскоростная (400кГц) последовательная шина I2C
• Напряжение питания +3.3В до +5.5В
• Цифровой датчик температуры с точностью ±3℃
• Рабочая температура от -40 ~ C до +85 ~ C
• 16 - контактный маленький пакет (300 мил)
Подключение Схемы
Этот модуль использует метод тестирования IIC, поэтому достаточно подключить 'SDA' к Arduino A4, 'SCL' к A5, '+' к VCC и '-' к GND.
Пример Кода
Прежде чем компилировать код, лучше поместить библиотеку DS3231 в каталог Arduino.
//////////////////////////////////////////////////////////
//DS3231
#include <Wire.h>
#include "DS3231.h"
DS3231 RTC; //Создаем объект DS3231
char weekDay[][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
//год, месяц, дата, час, минута, секунда и день недели (начинается с 0 и доходит до 6)
//ввод любых несуществующих временных данных может помешать нормальной работе RTC.
//Будьте осторожны с днем недели.
DateTime dt(2011, 11, 10, 15, 18, 0, 5); //откройте последовательный порт, и вы можете проверить время здесь или внести изменения во время по мере необходимости.
void setup (){
Serial.begin(57600); //установить скорость передачи данных 57600
Wire.begin();
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);
}
//////////////////////////////////////////////////////////
Результат Теста
После загрузки кода на плату Arduino, откройте серийный монитор и получите следующие результаты.