Цикл
- Войдите на сайт для отправки комментариев
Втр, 31/08/2021 - 08:18
Если температура равна или меньше 25. Включить пин7 держать 5 секунд и выключить. Как сделать что бы цикл не повторялся до следующего заданного изменения температуры. В зависимости от изменения температуры через драйвер L298N мотор будет крутиться вперёд назад, мотор должен отработать 5 секунд и остановиться. >25. 5 секунд работает стоп больше не повторяет >35 5 работает стоп.
Прочитайте про гестирезис. Если задать гестерезис 0.5 градуса, то после срабатывания условия по температуре повторное срабатывание в обратную сторону будет гораздо позже 5 секунд. 5 секунд работы мотора можно обеспечит по типу blink without delay. Что бы точно обезопасить программу от повторного срабатывания условия по температуре при первом срабатывании возвести флаг работы мотора и по флагу обходить измерение температуры пока работает мотор. После отключения мотора флаг опустить.
Как сделать что бы цикл не повторялся до следующего заданного изменения температуры.
добавить логическую переменную-флаг.
Добавляем в условие цикла, чтобы он работал только если переменная истинна. Изначально переменная 1 (true). Температура изменилась, цикл отработал - присвоили переменной false. И. пока переменная false - в цикл больше не заходим. Если температура снова изменилась - меняем переменную на true , цикл снова отрабатывает.
Здравствуйте. хочу сделать автоматическую подачу воздуха в карбюратор машины, (авто подсос) пробую написать скетч при прогреве двигателя мотор будет открывать заслонку 25=> 5 секунд работает мотор 40=>ещё 5 секунд работает. Но как сделать что бы мотор только раз отработал и больше не повторял условие.
Как это flag прописать
Правило 3х П:
пробуйте - показывайте - поправим