#define CLK 14
#define DIO 12
#define my_LED_BUILTIN 2 //D2 встроенный светодиод
#define PERIOD_1 1*1000 //
unsigned long timer_1, timer_2, timer_3, timer_4;
bool mode_ = false; // начинаем всегда с тестового режима
const uint8_t digitHEX[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; //0~9
#include "GyverTM1637.h"
GyverTM1637 disp(CLK, DIO);
void setup() {
Serial.begin(115200);
Serial.println(";");
pinMode(my_LED_BUILTIN, OUTPUT); //светодиод
digitalWrite(my_LED_BUILTIN, 0); //низкий сигнал на светодиод
disp.clear();
disp.brightness(7); // яркость, 0 - 7 (минимум - максимум)
disp.displayInt(8888);
disp.point(true); // вкл точки
uint32_t my_millis = 5*24*60*60*1000; //2 дня
my_millis += 23*60*60*1000; //18 часов
my_millis += 47*60*1000; //47 минут
my_millis += 23*1000; //23 секунды
uint32_t sec = my_millis / 1000ul; //всего секунд
int Days_fool = (sec / 86400ul); //всего целых дней
int Hours_part = (sec % 86400ul) / 3600ul; //часов дополнительно к дням
int Hours_part_10 = Hours_part / 10; //количество десятков в часах
int Hours_part_1 = Hours_part - Hours_part_10 * 10; //количество единиц в часах
int Hours_fool = (sec / 3600ul); //всего целых часов
int Mins_part = (sec % 3600ul) / 60ul; //минут дополнительно к часам
if (Days_fool > 0) {
uint8_t bit0 = digitHEX[Days_fool];
uint8_t bit1 = _d;
uint8_t bit2 = digitHEX[Hours_part_10];
uint8_t bit3 = digitHEX[Hours_part_1];
disp.displayByte(bit0, bit1, bit2, bit3);
}
if (Days_fool == 0) disp.displayClock(Hours_fool,Mins_part);
Serial.print(sec);
Serial.print(";");
Serial.print(Days_fool);
Serial.print(";");
Serial.print(Hours_part);
Serial.print(";");
Serial.print(Hours_fool);
Serial.print(";");
Serial.println(Mins_part);
}
void loop() {
if (millis() - timer_1 > PERIOD_1) {
timer_1 = millis();
}
}