#include <Wire.h> // Подключаем библиотеку Wire
#include <TimeLib.h> // Подключаем библиотеку TimeLib
#include <DS1307RTC.h> // Подключаем библиотеку DS1307RTC
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C MyLCD(0x27, 20, 4);
void setup() {
Serial.begin(9600); // Устанавливаем скорость передачи данных
while (!Serial) ; // Ожидаем подключение последовательного порта. Нужно только для Leonardo
delay(200); // Ждем 200 мкс
Serial.println("DS1307RTC Read Test"); // Выводим данные на последовательный порт
Serial.println("-------------------"); // Выводим данные на последовательный порт
MyLCD.init();
MyLCD.backlight();
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
MyLCD.setCursor(0, 0);
MyLCD.print("Time = ");
print2digits(tm.Hour);
MyLCD.write(':');
print2digits(tm.Minute);
MyLCD.write(':');
print2digits(tm.Second);
MyLCD.setCursor(0, 2);
MyLCD.print("Date = ");
MyLCD.print(tm.Day);
MyLCD.write('/');
MyLCD.print(tm.Month);
MyLCD.write('/');
MyLCD.print(tmYearToCalendar(tm.Year));
MyLCD.println();
delay(1000);
MyLCD.clear();
} else {
if (RTC.chipPresent()) {
Serial.println("The DS1307 is stopped. Please run the SetTime");
Serial.println("example to initialize the time and begin running.");
Serial.println();
} else {
Serial.println("DS1307 read error! Please check the circuitry.");
Serial.println();
}
delay(9000);
}
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
MyLCD.print(number);
}