Arduino uno R3, отсчитывающий 10 секунд с помощью ЖК-дисплея

#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, очистите все на дисплее и снова распечатайте все данные.