Одиночный вызов функции
- Войдите на сайт для отправки комментариев
Втр, 31/10/2017 - 11:57
Название темы может быть не совсем точно отражает суть вопроса.
Есть датчик газа MQ-5, при превышении определенной концентрации у него меняется состояние вывода D0. Соответственно будет вызываться функция отправляющая смску на заранее запрограммированый номер. Но у датчика высокий уровень будет до тех пор пока концентрация газа не снизится. Если просто читать состояние входа, то смска будет отправляться при каждом цикле). Аппаратно это можно решить путем включения конденсатора последовательно с датчиком, как раз будет одиночный импульс при срабатывании датчика. А как это решить программно?
P.S. Схемы и скетча нет никаких, пока только думаю над алгоритмом будущего устройства.
Нужна какая-то защелка ( флаг, признак, whatever )
Если Вас дачик выдает 1 или 0, то можно так:
Смска будет отправляться один раз, когда порог превышен, и когда измерения с датчика вошли в норму.
А как это решить программно?
Завести переменную, первоначальное значение которой - 0. Перед отправкой СМС проверять значение переменной: если 0 - отправляем СМС и меняем значение переменной на 1. Всё, больше СМС отправляться не будет. Осталось только вернуть в нужный момент значение 0, чтобы СМС снова отправлялось. Например по снижению концетрации газа.
Получается примерно такое.
У меня красивее :). Если не хотите отправлять смску, когда показания датчика пришли в норму, то будет так:
У меня красивее :)
Тут не в красоте дело) Я так пишу потому что для меня так более понятно, т.к. программист я так себе)))
Тут не в красоте дело) Я так пишу потому что для меня так более понятно, т.к. программист я так себе)))