"Одноразовая" пауза с помощью для if
- Войдите на сайт для отправки комментариев
Втр, 12/09/2017 - 23:28
Всем привет!
Стоит задача сделать условие с разовой задержкой на Arduino. Подробнее:
if ( digitalRead(Pin1) == LOW ) //если включен Pin1 { digitalWrite(Pin2, LOW); //включаем Pin2 Разовая пауза в 20 секунд с помощью millis if ( X!= 1 ) //опрос датчика Х на изменения, после работы Pin2 в течение 20 сек { digitalWrite(Pin2, HIGH); //выключение Pin2 если после 20 сек работы //не произошло изменений в системе } }
В общем нужна постоянная проверка работоспособности Pin2 по данным с датчика Х.
Уже всю голову поломал! Может пример какой есть простой? Помогите пожалуйста!
http://arduino.ru/forum/programmirovanie/dlya-nachinayushchikh-kak-ne-na...
http://arduino.ru/forum/programmirovanie/klassy-arduino-po-qwone-dlya-ch...
Ну если только как пример
vosara, выражаю громадную благодарность за помощь! Благодаря этому примеру всё склепал за 20 минут.
Желаю чтобы у тебя всё было замечательно!)
В общем, получилось как то так:
В 21 строчке Вы проверяете f_pausa=0 -чтобы включить насос и провести засечку времени-если истина то включается насос и f_pausa = 1; для того чтобы сюда больше не заходить и не менять засечку времени. Больше нигде в программе Вы не возвращаете f_pausa=0, следовательно во второй раз не сможете включить насос.
И еще если mcp.digitalRead(7) то может mcp.pinMode(7, INPUT);
mcp.digitalWrite(9, HIGH); - Может mcp.digitalWrite(7, HIGH); // GPB1 Реле 12 (котел цо) ВЫКЛ
во второй раз не сможете включить насос.
А надо? :)
Ну я думаю что каждыйраз перезапускать ардуино не лутший вариант. А вообще в програме на 40 строк очень много ошибок по не внимательности!
Вы верно подметили на счет f_pausa=0 и на счет ошибок. Это значение возвращается во время перевода "mcp.digitalWrite(9, LOW);" в другом отрезке кода. Исходный код очень объёмный и не хотелось выкладывать его полностью. Если смысл работы системы понятен и (он всё таки работает так как я задумал) грамотность кода не вызывает рвотного рефлекса, то моя цель достигнута :)
Ещё раз благодарю за помощь!
Да нет все нормально. Я считаю если код работает так как Вы задумали ЗНАЧИТ ОН НАПИСАН ПРАВЕЛЬНО!