Меню с кнопками

#button #arduino #menu #esp32

#кнопка #arduino #меню #esp32

Вопрос:

У меня есть сомнения по поводу создания меню с помощью кнопок. Сначала я должен дождаться нажатия кнопки. Когда кто-то уходит, я должен открыть опцию для нажатой кнопки. Я попробовал сделать следующее, но у меня ничего не получилось. У кого-нибудь есть какие-нибудь предложения?

 void loop() {
  int button1 = digitalRead(but1);
  int button2 = digitalRead(but2);

  while (button1 == LOW amp;amp; button2 ==LOW) {};
  while (button1 == HIGH || button2 ==HIGH) {
    if (button1 == HIGH) {
      Serial.print("RFID")
      rfid_menu();
    }

    if (button2 == HIGH) {
      Serial.print("FingerPrint")
      fingerprint_menu();
    }
  };
}
 

Комментарии:

1. Вы считываете обе кнопки; если LOW это так, программа застрянет в первом while цикле, потому что статус кнопки не считывается снова внутри while цикла.

Ответ №1:

причина, по которой ваш код застревает, заключается в значениях button1 и button2 в строке:

while (button1 == НИЗКИЙ amp;amp; button2 ==НИЗКИЙ) {};

при первом запуске кода обеим этим переменным присваиваются НИЗКИЕ значения. Хотя оба эти значения МАЛЫ, код внутри цикла (в данном случае ничего) будет зацикливаться вечно, пока не изменится значение button1 или button2. Однако, поскольку в цикле нет кода, этого никогда не произойдет

чтобы исправить это, я бы просто удалил эту строку кода. ваш код по-прежнему будет работать так же, как и два других цикла while, которые будут выполняться только при нажатии одной из кнопок (при условии, что все подключено правильно)