Работа условия в течение 20 секунд. Или защита насоса от сухого пуска.

ergeykl
Offline
Зарегистрирован: 20.04.2017

Всем привет!

Появилась идея создания реле сухого пуска на даче, для скважинного насоса. Придумал условие, а как его написать, уже всю голову сломал.

Если (давление ниже 1 бара, подаётся сигнал на реле о включении насоса)

то,  если (начинается отсчет 20ти секунд и если давление (с датчика давления), по истечению времени, не попадает в диапазон от 1,0 до 1,2 бар } то включается сирена и авария.

Из модулей есть Часы реального времени, из контроллеров есть Ардуины Нано 328ые и ESP12.

Помогите, пожалуйста!

b707
Offline
Зарегистрирован: 26.05.2017

часы реального времени нафик не нужны, отмерить 20 сек умеет любая ардуина.

Как - посмотрите вот этот пример http://arduino.ru/tutorials/BlinkWithoutDelay

ergeykl
Offline
Зарегистрирован: 20.04.2017

b707 пишет:

часы реального времени нафик не нужны, отмерить 20 сек умеет любая ардуина.

Как - посмотрите вот этот пример http://arduino.ru/tutorials/BlinkWithoutDelay

Я наверное что то непонимаю, но разве "Millis" не обнуляется через 50 дней?

Смысл условия в том, что если в течение 20 сек давления становится больше 1,2 бар, то всё супер; если не становится больше 1,2 бар, то сигнал аварии и т.д.

Спасибо!

b707
Offline
Зарегистрирован: 26.05.2017

ergeykl пишет:

Я наверное что то непонимаю, но разве "Millis" не обнуляется через 50 дней?

Смысл условия в том, что если в течение 20 сек давления становится больше 1,2 бар, то всё супер; если не становится больше 1,2 бар, то сигнал аварии и т.д.

Спасибо!

Обнуляется, и что? Наручные часы показывают одно и то же время каждые 12 часов. однако вряд ли это помешает вам отмерить на них интервал 20 секунд...

Смысл вашего условия я понял еще из первого сообщения.

ergeykl
Offline
Зарегистрирован: 20.04.2017

b707 пишет:

ergeykl пишет:

Я наверное что то непонимаю, но разве "Millis" не обнуляется через 50 дней?

Смысл условия в том, что если в течение 20 сек давления становится больше 1,2 бар, то всё супер; если не становится больше 1,2 бар, то сигнал аварии и т.д.

Спасибо!

Обнуляется, и что? Наручные часы показывают одно и то же время каждые 12 часов. однако вряд ли это помешает вам отмерить на них интервал 20 секунд...

Смысл вашего условия я понял еще из первого сообщения.

Я наверное чего то не понимаю, в каком случае произойдёт обнуление "Millis" и чем это грозит?

b707
Offline
Зарегистрирован: 26.05.2017

ergeykl пишет:

Я наверное чего то не понимаю, в каком случае произойдёт обнуление "Millis" и чем это грозит?

Обнуление millis() происходит каждые 4 294 967 295 миллисекунд - примерно 50 дней.  Интервалу в 20 секунд это не грозит ничем.

 

b707
Offline
Зарегистрирован: 26.05.2017

что-то мне сегодня лень вести долгие дискуссии - поэтому внесу ясность.

Обнуление миллис раз в 50 дней никак не мешает измерению интервалов много меньших этой величины, даже в том маловероятном случае, если интервал попадает на момент обнуления.

Если все равно что-то непонятно или желаете поспорить - добрый совет - сначала сделайте поиск по этому вопросу в гугле. Даже на этом форуме обсуждалось не один десяток раз.

ergeykl
Offline
Зарегистрирован: 20.04.2017

Спасибо за совет, примусь за изучение!

b707
Offline
Зарегистрирован: 26.05.2017

добавлю - с помощью миллис можно отмерять интервалы и больше 50 суток. но в этом случае уже придется учитывать факт обнуления. Понадобятся две дополнительные переменные - флаг переполнения и счетчик переполнений...

Хотя, конечно, измерение таких интервалов миллисом - это уже изврат.