#include <ssd1306.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
#include <RTClib.h>
RTC_DS1307 rtc;
//extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
//extern uint8_t SmallFont[]; // Подключение маленьких шрифтов
int x = 0; // Создаем переменную "х"
void setup()
{
lcd.begin(16, 2); // Инициализация Oled дисплея
rtc.begin(); // Инициализация RS3231
}
void loop()
{
if (x >= 10) {temp(); // Если "x", больше или равно 10, выполняем цикл "temp"
x=0;} // Обнулить "x"
else {clock();} // Если "x", меньше 10, выполняем цикл "clock"
x++; // Увеличить "x" на 1
}
void clock() // Цикл считывания и отображения времени
{
lcd.clear(); // Очищаем экран
//lcd.setFont(SmallFont); // Включаем маленький шрифт
lcd.print(rtc.getDOWStr(), CENTER, 0); // Отображение дня недели
lcd.print("cyka");
String stringOne = rtc.getTimeStr();
//lcd.setFont(MegaNumbers); // Включаем большой шрифт
lcd.print(stringOne.substring(0,2), 4, 12); // Отображение часов
lcd.print("/", 51, 12); // Отображение двоеточие
lcd.print(stringOne.substring(3,5), 75, 12); // Отображение минут
//lcd.setFont(SmallFont); // Включаем маленький шрифт
lcd.print(rtc.getDateStr(), CENTER, 57); // Отображение даты
lcd.update(); // Обновляем информацию на дисплее
delay(500); // Пауза
//lcd.setFont(MegaNumbers); // Включаем большой шрифт
lcd.print("-", 51, 12); // Убираем двоеточие
lcd.update(); // Обновляем информацию на дисплее
delay(500); // Пауза
}
void temp() // Цикл считывания и отображения температуры
{
lcd.clear(); // Очищаем экран
//lcd.setFont(MegaNumbers); // Включаем большой шрифт
lcd.print(String(rtc.getTemp() , 1), CENTER, 12);
//lcd.setFont(SmallFont); // Включаем маленький шрифт
lcd.print("Temperature", CENTER, 57); // Отображение надписи
lcd.update(); // Обновляем информацию на дисплее
delay(2000); // Пауза
}