#arduino #display #countdown #led #lcd
#arduino #дисплей #обратный отсчет #светодиодный #ЖК-дисплей
Вопрос:
Я создаю простую программу с использованием цикла if-else для отображения 10 секунд на экране ЖК-дисплея 16×2. Это светофор, поэтому, когда он загорается зеленым светодиодом, я хочу отобразить 10 секунд, а затем продолжить цикл. Моя проблема здесь в том, что обратный отсчет идет каждые секунды, а затем запускается цикл. Я имею в виду, что начальное число равно 10, затем начинаются циклы, затем оно переходит в 9, затем начинается цикл, поэтому проблема здесь в том, что оно не переходит от 10 к 0, но оно уменьшается каждые секунды, и после каждой секунды появляется новый цикл.
enter code here lcd.setCursor(1,0);
lcd.setCursor(6,1);
lcd.setCursor(9,1);
S--;
if(S<0){
S=10;
}
if(S>10){
lcd.setCursor(10,1);
lcd.print(S);
}
else {
lcd.setCursor(10,1);
lcd.print(" ");
lcd.setCursor(11,1);
lcd.print(S);
lcd.setCursor(13,1);
lcd.print(" ");
}
Ответ №1:
Этот вопрос не идеален.
Но вот хороший пример:
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time:");
//lamp green
for (int i=10;i>0;i--){
lcd.setCursor(6,0);
if (i==9){ //Time: 10, Time: 90 <<this printed without if. Or use a space after i value
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time:");
}
lcd.print(i);
delay(1000);
}
//lamp red
for (int i=10;i>0;i--){
lcd.setCursor(6,0);
if (i==9){ //Time: 10, Time: 90 <<this printed without if. Or use a space after i value
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time:");
}
lcd.print(i);
delay(1000);
}
//lamp green
скопируйте этот код в цикле и измените для использования.
Удачи!
Комментарии:
1. Спасибо, это немного помогло одной части вашей программы. Но 9 не исчезает, все еще там.
2. Проверьте это: удалите метод if, очистите все на дисплее и снова распечатайте все данные.