#include "GyverTM1637.h" // подключаем библиотеку дисплея
#include "GyverTimer.h" // подключаем библиотеку таймера
#define CLK 2 //пины подключения дисплея
#define DIO 3 //пины подключения дисплея
GyverTM1637 disp(CLK, DIO); //инициализация дисплея
GTimer myTimer(MS); // создать миллисекундный таймер (ms) (по умолч. в режиме интервала)
unsigned int minutes = 0;
unsigned int seconds = 0;
unsigned long time = 20; //начальное время таймера
byte flag = 1; //вычитание из времени таймера
byte flag1 = 1; //надпись время вышло
void setup() {
Serial.begin(9600);
myTimer.setInterval(1000); // запуск в режиме интервала N мс
// myTimer.stop(); // "остановить" таймер
// myTimer.start(); // запустить (перезапустить) таймер
// myTimer.reset(); // сбросить период
// myTimer.resume(); // продолжить работу после stop
}
void loop() {
disp.displayInt(20);
minutes = time / 60; //деление времени для расчёта минут
seconds = time % 60; ////деление времени с остатком для расчёта оставшихся секунд
disp.display(minutes, seconds);
if (myTimer.isReady() & flag == 1) { //myTimer.isReady - срабатывание таймера
time--;
// Вывод времени в формате "минуты:секунды" на монитор порта
Serial.print("Time: ");
Serial.print(minutes);
Serial.print(":");
if (seconds < 10) {
Serial.print("0"); // Добавляем ведущий ноль для однозначных секунд
}
Serial.println(seconds);
}
if (time == 0 & flag1 == 1) {
flag = 0;
Serial.println("time is out");
flag1 = 0;
}
}