ARDUINO Выполнять действие не более заданного времени

Mitchell86

✩✩✩✩✩✩✩
25 Янв 2022
3
0
Доброго всем.
Никак не могу вкурить как реализовать выполнение действия не более заданного времени.

есть кнопка. пока она нажата, выполняем действие, но не дольше 8 секунд.

буду признателен за помощь
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,272
1,303
Москва
если на кнопке был клик, то таймер=текущее_время.
если текущее_время - таймер меньше 8 секунды, то делать что то.

Для таймера используется 32-битное число. Это 4.2 млн секунд, почти 50 дне. Если прибор должен использоваться непрерывно без выключения больше 50 дней и кнопка может нажиматься реже чем раз в 50 , то надо предусмотреть переход . Иначе через 49.7.. дней действие самопроизвольно повториться.
 

Mitchell86

✩✩✩✩✩✩✩
25 Янв 2022
3
0
если на кнопке был клик
не клик, а пока она нажата. Это контроль времени долива жидкости в бачок. Пока геркон замкнут - насос включен, но чтоб не перелило если вдруг геркон залипнет - то лить не более 8 секунд
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,272
1,303
Москва
Ну я не ясновидящий, если просто нажата, то надо отслеживать изменение положения с отпущена на нажата. Будет примерно так:
если кнопка была отпущена, а теперь нажата, то ..
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
178
51
не клик, а пока она нажата. Это контроль времени долива жидкости в бачок. Пока геркон замкнут - насос включен, но чтоб не перелило если вдруг геркон залипнет - то лить не более 8 секунд
не совсем верный алгоритм.
ну отработал насос 8 сек.
бачок почти полный.
а ещё через 1 сек геркон опять сработал - и перелив.

напрашивается датчик верхнего уровня жидкости.
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
178
51
опа. авария появилась.
и какой её принцип действия.