Модуль RTS DS1302 для Arduino
Характеристики:
Чип DS1302 представляет собой часы, календарь и 31 байт ОЗУ.
Он взаимодействует с микропроцессором через простой последовательный интерфейс.
Поддерживает секунды, минуты, часы, день недели, дата, месяц, год.
Часы работают как в 24-часовом или 12-часовом формате с AM / PM индикатором.
Компенсация високосного года действует до 2100 года.
Питание: 2,0 В до 5,5 В
Использует менее 300nA на 2.0V.
Температурный диапазон:-40 до +85 град.
Размер: 4,4 см х 2,4 см
Поставляется вместе с батареей CR2032
Подключение к Ардуино
DS1302 | ARDUINO |
VCC | 3,3...5В |
GND | GND (подключить через резюк 1КОм) |
CLK | 4 |
DAT | 3 |
RST | 2 |
Скачать даташит DS1302
Пример кода по отображению времени и даты
#include
#include
#include
// Init the DS1302
DS1302 rtc(2, 3, 4); // (RST, DAT, CLK)
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
Time t;
void setup()
{
// Set the clock to run-mode, and disable the write protection
//Установка часов для запуска-
// rtc.halt(false);
//rtc.writeProtect(false);
// The following lines can be commented out to use the values already stored in the DS1302
//rtc.setDOW(MONDAY); // Set Day-of-Week to FRIDAY Monday
//rtc.setTime(20, 37, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(23, 12, 2013); // Set the date to August 6th, 2010
}
void loop()
{
t = rtc.getTime();
lcd.init(); // initialize the lcd
lcd.backlight(); // включение подсветки
lcd.setCursor(0, 0); // отступ первой строки слева 0 .
// lcd.print(rtc.getDateStr()); // дата в формате день.месяц.год
lcd.print(t.date, DEC); // день
lcd.print(" ");
lcd.print(rtc.getMonthStr()); // месяц
lcd.print(" ");
lcd.print(t.year, DEC); // год
lcd.print(".");
lcd.setCursor(0, 1); // отступ второй строки слева 1 .
//lcd.print(rtc.getTimeStr()); // Время в формате час:минуты:секунды
// или по отдельности
lcd.print(rtc.getDOWStr()); // день недели
lcd.print(" ");
lcd.print(t.hour, DEC); //часы
lcd.print(":"); // разделитель
lcd.print(t.min, DEC); // минуты
lcd.print(":"); // разделитель
lcd.print(t.sec, DEC); // секунды
}