Хорошо, поэтому я написал этот код, и это должно, насколько мне известно, вывести время HMS, но оно выводит 00:00:00 WAY больше секунды. Я не пробовал ждать дольше, чем через пару часов, чтобы узнать, не изменилось ли это. Я знаю, что это не проблема с оборудованием, потому что мой lcd работает отлично и У меня нет ничего другого, связанного с моим arduino. Если вы хотите знать, я попытался установить цикл «_time» «over».Подсчет секунд не работает
Это код:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int hour;
int minute;
int seconds = -1;
boolean printed = false;
boolean secCounted = false;
unsigned long nextMillis = 1000;
void setup() {
lcd.begin(16, 2);
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis = nextMillis) _time(), nextMillis += 1000;
}
void _time(){
seconds += 1;
if(seconds == 60) seconds = 0, minute += 1;
if(minute == 60 && hour <= 12) minute = 0, hour += 1;
if(printed == false){
if(hour == 0) lcd.print("00");
if(hour != 0 && hour < 10) {lcd.print("0");
lcd.print(hour);}
if(hour > 9) lcd.print(hour);
lcd.print(":");
if(minute == 0) lcd.print("00");
if(minute != 0 && minute < 10) {lcd.print("0");
lcd.print(minute);}
if(minute > 9) lcd.print(minute);
lcd.print(":");
if(seconds == 0) lcd.print("00");
if(seconds != 0 && seconds < 10) {lcd.print("0");
lcd.print(seconds);}
if(seconds > 9) lcd.print(seconds);
printed = true;
}
}
Это может помочь, если вы добавили тег для языка программирования ([тег: с]?) – Filburt