#include <LiquidCrystal_I2C.h> // Подключаем библиотеку для работы с LCD дисплеем по шине I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Объявляем объект библиотеки, указывая параметры дисплея (адрес I2C = 0x27, количество столбцов = 16, количество строк = 2)
int days, hours, minutes, seconds; // Объявляем переменные для хранения дней, часов, минут и секунд.
int speed = 1;
void setup() {
lcd.init(); // Инициируем работу с LCD дисплеем
lcd.backlight(); // Включаем подсветку LCD дисплея
}
void loop() {
seconds = (millis() / 1000 * speed) % 60; // Получаем секунды: остаток от деления всех секунд на 60 (60 сек в минуте).
minutes = (millis() / 1000 / 60 * speed) % 60; // Получаем минуты: остаток от деления всех минут на 60 (60 минут в часе).
hours = (millis() / 1000 / 60 / 60 * speed) % 24; // Получаем часы: остаток от деления всех часов на 24 (24 часа в дне).
days = millis() / 1000 / 60 / 60 / 24 * speed; // Получаем дни
// Выводим время прошедшее после старта:
lcd.setCursor(0, 0); // Устанавливаем курсор в позицию (0 столбец, 0 строка).
lcd.print("Days: "); // Выводим текст.
if (days < 10) lcd.print('0'); // Выводим 0 перед количеством дней.
lcd.print(days); // Выводим количество дней.
lcd.setCursor(0, 1); // Устанавливаем курсор в позицию (0 столбец, 1 строка)
if (hours < 10) lcd.print('0'); // Выводим 0 перед количеством часов.
lcd.print(hours); // Выводим количество часов.
lcd.print(':'); // Выводим символ.
if (minutes < 10) lcd.print('0'); // Выводим 0 перед количеством минут.
lcd.print(minutes); // Выводим количество минут.
lcd.print(':'); // Выводим символ.
if (seconds < 10) lcd.print('0'); // Выводим 0 перед количеством секунд.
lcd.print(seconds); // Выводим количество секунд.
}