Можно ли выйти из цикла при изменении входного состояния?
input
loop
Я хотел бы выйти из определенного цикла, если состояние входных данных изменяется с НИЗКОГО на ВЫСОКИЙ. Это текущий цикл:
void brakeFade() {
pixels.clear();
pixels.setBrightness(255);
pixels.fill(16711680, 0, 0);
for(int i=255; i>=10; i-=1) {
pixels.setBrightness(i);
pixels.show();
delay(5);
}
for(int j=10; j<=255; j+=1) {
pixels.setBrightness(j);
pixels.show();
delay(5);
} }
Мне нужен этот цикл для выхода, если
(digitalRead(brakeFeed) == LOW)
Изменяется на ВЫСОКИЙ во время цикла.
@JabawokJayUK, 👍1
Обсуждение1 ответ
▲ 1
разобрался в этом:
void brakeFade2() {
pixels.clear();
pixels.setBrightness(255);
pixels.fill(16711680, 0, 0);
for(int i=255; i>=10; i-=1) {
if (digitalRead(brakeFeed) == LOW){
pixels.setBrightness(i);
pixels.show();
delay(5);
}
else {
break;
}
}
for(int j=10; j<=255; j+=1) {
if (digitalRead(brakeFeed) == LOW){
pixels.setBrightness(j);
pixels.show();
delay(5);
}
else {
break;
}
}
}
,
@JabawokJayUK
более простым способом было бы добавить его в тест завершения цикла for
... for(int i=255; (i>=10) или (digitalRead(brakeFeed) == НИЗКИЙ); i--) {
, @jsotola
Разве это не было бы for(int i=255; (i>=10) && (digitalRead(brakeFeed) == LOW)
? Операционная система хочет, чтобы цикл продолжался до тех пор, пока значение >= 10, ** и ** вывод подачи тормоза по-прежнему считывается как низкий. Он должен сломаться, если что-то из этого перестанет иметь место., @Duncan C
Смотрите также:
- Состояние ввода остается HIGH, когда функция, вызываемая с помощью ввода, также использует тот же ввод для вызова другой функции
- Чтение из Serial
- Мигните светодиодом 5 раз с помощью цикла for
- Как узнать сопротивление внутреннего подтягивающего резистора?
- Чтение нескольких аналоговых входных контактов
- Как остановить цикл в последовательном мониторе?
- Как подключить трехконтактный переключатель включения-выключения для считывания входных данных?
- Индустриализация Arduino - 24V io? (Электроника)
нет никаких причин использовать две разные именованные индексные переменные,
i
иj
, в двух циклахfor
... они оба могут быть "i" .... увеличение может быть выполнено с помощью "i ++вместо
i + = 1` ... то же самое и с декрементом, @jsotola