Я хотел бы реализовать часы с ESP-32 и 416-дюймовым дисплеем TM1637 git. Мой код в данный момент работает просто отлично, но когда часы достигают 23:00, они все равно показывают 22 часа. И когда я позволяю часам работать до тех пор, пока они не достигнут 24 часов, на дисплее загораются все сегменты.
Вот мой код:
//...
String timeStamp;
unsigned long timeNow = 0;
unsigned long timeLast = 0;
int hours;
int minutes;
int seconds;
int value = 1244;
uint8_t colonOn = 0x80 | display.encodeDigit((value / 100)%10);
uint8_t colonOff = 0x00 | display.encodeDigit((value / 100)%10);
//...
display.setBrightness(8);
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setSegments(data);
Вот моя функция l oop : Сначала некоторые настройки
void loop()
{
timeNow = millis()/1000;
seconds = timeNow - timeLast;
if ((timeNow % 2) == 0) {
display.setSegments(&colonOn, 1, 1); // Turns the colon on
} else {
display.setSegments(&colonOff, 1, 1); // Turns the colon off
}
if (seconds == 60) {
timeLast = timeNow;
minutes += 1;
display.showNumberDec(minutes, true, 2, 2);
}
if (minutes == 60) {
minutes = 0;
hours += 1;
display.showNumberDec(minutes, true, 2, 2);
display.showNumberDec(hours, true, 2, 0);
}
if (hours == 24) {
hours = 0;
resetFunc(); // call the resetFunction so the microcontroller restarts
}
delay(990);
}
Я понял, что установка двоеточия с помощью следующего кода реализует эту проблему: display.setSegments(&colonOn, 1, 1);
Без этой строки часы, вероятно, работают, но затем двоеточие не работает t появляется каждую секунду