Доброго времени суток. Вопрос вот в чём: При появлении на A0 параметра ниже 40, запускается две функции последовательно. Как сделать, что бы при изменении параметра на A0, система сбрасывала проход фунций на любом этапе прохождения в режим ожидания? Благодарю за ответ делетанту! Время указанное в функциях чисто для проверки работоспособности девайса. void setup() { pinMode(2, OUTPUT); } void loop() { if (analogRead(A0) < 40) { motor1(); motor2(); } } void motor1() { for (uint8_t i = 0; i <= 2; i++) { digitalWrite (2, HIGH); delay (500); digitalWrite (2, LOW); delay (500); } } void motor2() { for (uint8_t i = 0; i <= 5; i++) { digitalWrite (2, HIGH); delay (500); digitalWrite (2, LOW); delay (5000); } }
А где в коде организован режим ожидания? Два варианта - либо по вачдогу уходить на ресет, либо же убрать delay из кода как класс.
не надо вам ресет, это не метод для вашей проблемы. Это лечение головной боли гильотиной Правильно так - Функции надо переписать без использования delay() и все время работы моторов мониторить аналоговый вход
Вообще, обычно запоминают текущее значение переменной и сравнивают его со следующим значением. На основании этого сравнения производятся дальнейшие действия.
В Совецких школах рассказывали. Домашку делали, потом контрольную, затем диктант писали. Ну и на десерт экзамен.