Как установить переменную, чтобы после выполнения условия цикл игнорировал ввод?

У меня есть аналоговые входы для моего Uno, которые я очищаю и использую, чтобы поддерживать высокий уровень на цифровом выводе, пока выход не упадет до нуля. На этом этапе я хочу прекратить чтение этого ввода, потому что он может вернуться после того, как в течение короткого времени был низким. Есть ли способ установить переменную, которая может быть запущена этим первым нулем, который не позволяет петле отправлять высокий цифровой вывод с этого момента? Вроде какой-то защелки, или можно как-то использовать прерывание?

, 👍1

Обсуждение

Конечно. Просто установите переменную в какое-то значение. И используйте if, чтобы сравнить это значение., @Majenko

Вы можете назвать эту переменную «флагом», который устанавливается после ввода == 0 и считывается перед установкой высокого уровня вывода., @towe


1 ответ


Лучший ответ:

0

Вы уже описали, что вам нужно сделать. Просто установите логическую переменную. Это действительно не может быть проще.

boolean runThisPart = true;

void loop() {

  if(runThisPart) {
     // эта часть запускается, только если runThisPart имеет значение true
     // если что-то случилось, а вы не хотите
     // запускать эту часть больше, чем
     if(some-condition){
        runThisPart = false;
     }
  }
  // Остальная часть вашего кода также может установить runThisPart
  // значение true или false, чтобы включить или выключить этот раздел.
}
,