Arduino while как loop с условием
Как написать программу ожидания (задержки) до нажатия одной из двух кнопок? Я написал программу, чтобы ждать, пока не будет нажата одна кнопка. Он отлично работает. Однако, если я расширяю его до второй кнопки, он не работает. Пожалуйста, помогите в этом.
while (digitalRead(bt_Select) == HIGH) {}
-- работает.while (digitalRead(bt_Select) == HIGH || digitalRead(bt_Reject) == HIGH) {}
-- Не работает.
Полный код:
const int bt_Select = 2;
const int bt_Reject = 3;
void setup() {
Serial.begin(9600);
pinMode(bt_Select, INPUT_PULLUP);
pinMode(bt_Reject, INPUT_PULLUP);
}
void loop() {
Serial.println("Pl input:");
while (digitalRead(bt_Select) == HIGH {} // This is the line I change
if (digitalRead(bt_Select) == LOW) {
Serial.println("Select Button pressed:");
delay(250);
Serial.println("");
}
if (digitalRead(bt_Reject) == LOW) {
Serial.println("Reject Button pressed:");
delay(250);
Serial.println("");
}
}
@Ak Rikas, 👍0
1 ответ
Лучший ответ:
▲ 0
while (digitalRead(bt_Select)==HIGH||digitalRead(bt_Reject)==HIGH){}
должно быть
while (digitalRead(bt_Select)==HIGH&&digitalRead(bt_Reject)==HIGH){}
Первый цикл прервется только в том случае, если вы нажмете обе кнопки одновременно. Я полагаю, что вы пытаетесь выйти, если нажать любую из этих кнопок.
,
@JRobert
Смотрите также:
- DS3231 + кнопка для включения подсветки
- устаревшее преобразование из строковой константы в 'char*'
- Какие есть другие IDE для Arduino?
- Esp8266 Vin контакт
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Плата для разработки STM8 с Arduino IDE
- Поскольку double и float представляют один и тот же тип данных (обычно), что предпочтительнее?
- Как перезапустить счетчик в программе с помощью кнопки в настройке LDR Tripwire
да, я пытаюсь сломаться, если нажата какая-либо кнопка., @Ak Rikas
Спасибо, что он работает.. 5n, @Ak Rikas
однако я запутался, как это может работать?!*, @Ak Rikas
@AkRikas Ваш код остается в цикле while, когда одна из кнопок "HIGH", а другая-когда обе кнопки "HIGH". Это ответ на ваш вопрос?, @Python Schlange
@Ak Rikas - Условие в цикле while - это условие продолжения, а не условие прерывания. Вы хотите, чтобы цикл прерывался, когда нажата одна ИЛИ другая. Это значит, что он должен продолжаться, когда обе не нажаты. Чтобы проверить, что обе не нажаты, вам нужно использовать AND., @Delta_G