Как установить переменную, чтобы после выполнения условия цикл игнорировал ввод?
У меня есть аналоговые входы для моего Uno, которые я очищаю и использую, чтобы поддерживать высокий уровень на цифровом выводе, пока выход не упадет до нуля. На этом этапе я хочу прекратить чтение этого ввода, потому что он может вернуться после того, как в течение короткого времени был низким. Есть ли способ установить переменную, которая может быть запущена этим первым нулем, который не позволяет петле отправлять высокий цифровой вывод с этого момента? Вроде какой-то защелки, или можно как-то использовать прерывание?
@Jeremy Brown, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 0
Вы уже описали, что вам нужно сделать. Просто установите логическую переменную. Это действительно не может быть проще.
boolean runThisPart = true;
void loop() {
if(runThisPart) {
// эта часть запускается, только если runThisPart имеет значение true
// если что-то случилось, а вы не хотите
// запускать эту часть больше, чем
if(some-condition){
runThisPart = false;
}
}
// Остальная часть вашего кода также может установить runThisPart
// значение true или false, чтобы включить или выключить этот раздел.
}
,
@Delta_G
Смотрите также:
- Использовать timer0, не влияя на millis() и micros().
- Arduino Мигает двумя светодиодами без задержки (количество повторений)
- Аппаратное прерывание срабатывает случайным образом
- _delay_ms() работает намного медленнее, чем ожидалось (в 6 раз) на tinyAVR 0/1 (ATTiny1604)
- Как рандомизировать задержку в коде шагового двигателя Arduino?
- Запуск двигателя постоянного тока в течение заданного промежутка времени
- Как заставить ЖК-экран прокручивать текст , позволяя вводить кнопки?
- Как запустить 4 светодиода последовательно на основе кнопочного входа?
Конечно. Просто установите переменную в какое-то значение. И используйте
if
, чтобы сравнить это значение., @MajenkoВы можете назвать эту переменную «флагом», который устанавливается после ввода
== 0
и считывается перед установкой высокого уровня вывода., @towe