А если какой затык и датчик завис между герконами? Здесь, имхо, правильнее будет сделать временную зависимость.
Я бы предложил проверку на переход текущего в соседнее состояние, т.е. если скажем текущее 60%, то возможен переход только в 50% или 70%, все иные результаты считаются ошибкой и просто отбрасываются.
Я отсёк минимальное значение
if (volts_2 < 0.44)
{
do
{ lcd.setCursor(6, 3);
lcd.print(persent_barrel_2);
} while (volts_2 > 0.49);
}
1)Если переменная в которую пишется значение приходящих вольт меньше ( if (volts .....) )
2)Открываю цикл (do)
3)Пишу предыдущее значение (lcd.set-print)
4)До тех пор пока значение переменной не превысит минимальный порог. (while)
Наверно я не понимаю того, что до меня хотят донести.
Донести хотят то, что сейчас в зависимости от условия в if печать либо не выполнится совсем либо выполнится один единственный раз. Сдаётся мне, Вы условие попутали. Если под while условие истинно, то цикл повторится, если ложно, то повторения не будет. Для того, что Вы хотели, небось знак перевернуть надо.
Но если это так, то это плохо - в системах автоматизации зависать в таких потенциально бесконечных циклах.
До вас хотят донести, что в случае аварийной ситуации, информация об этом отсутствует. Вода в т.ч. и дождевая, значит водоросли, улитки и т.п. - поплавок может реально зависнуть, а насос, знай себе качает.((((
Вариант ВН, не очень нравится по причине, если в этот период еще и перебой с электроэнергией произойдет, предыдущее значение будет утеряно.
Как вижу я, понять можно только на живой системе, от нее и разрабатывать алгоритм.
При максимально возможном расходе, подача может быть меньше, равна или превышать расход.
Первые два, самые гнусные, т.к. невозможно определить, расход равен подаче или поплавок висит, если такое возможно, значит надо вводить какой то верхний независимый датчик.
Если подача всегда выше расхода, через определенный интервал обязательно должно произойти срабатывание какого либо уровня. Если не произошло, значит либо зависший поплавок, либо неполадки с насосом (подразумеваю, что наличие воды в предварительном бачке мы контролируем), это уже аварийная ситуация и требует вмешательства. Как то так.
Вариант ВН, не очень нравится по причине, если в этот период еще и перебой с электроэнергией произойдет, предыдущее значение будет утеряно.
тут вообще есть такая проблема, как реализовать процесс старта. т.к. магнит может висеть в промежуточной зоне.
Что тогда считает система - в баке минимальный уровень воды?
Далее система включает насос и ждет появления первого сигнала с какого-то уровня, в случае моего алгоритма этот уровень и принимается за текущий. Либо просто первый измеренный, если зона не промежуточная.
тут вообще есть такая проблема, как реализовать процесс старта. т.к. магнит может висеть в промежуточной зоне.
Что тогда считает система - в баке минимальный уровень воды?
Далее система включает насос и ждет появления первого сигнала с какого-то уровня, в случае моего алгоритма этот уровень и принимается за текущий. Либо просто первый измеренный, если зона не промежуточная.
т.е. Бак тут сам является ячейкой памяти.
Ни в коем рази не хотел критиковать, а только указать ТС на подводные камни. Что расписано у меня, тоже не идеал, поплавок может зависнуть и на максимуме, и бак всегда полный.))))
Пока что у ТС, вообще никаких защит и мониторингов. А алгоритмов, сами знаете, всегда вагон и маленькая тележка.))))
тут вообще есть такая проблема, как реализовать процесс старта. т.к. магнит может висеть в промежуточной зоне.
Что тогда считает система - в баке минимальный уровень воды?
Далее система включает насос и ждет появления первого сигнала с какого-то уровня, в случае моего алгоритма этот уровень и принимается за текущий. Либо просто первый измеренный, если зона не промежуточная.
т.е. Бак тут сам является ячейкой памяти.
У меня считает что бак не полон и его можно доливать. Но и не пуст и с него можно брать воду. А уж когда сработает геркон, тогда и определимся с уровнем.
До вас хотят донести, что в случае аварийной ситуации, информация об этом отсутствует. Вода в т.ч. и дождевая, значит водоросли, улитки и т.п. - поплавок может реально зависнуть, а насос, знай себе качает.((((
Вариант ВН, не очень нравится по причине, если в этот период еще и перебой с электроэнергией произойдет, предыдущее значение будет утеряно.
Простите мне мою невнимательность, Вы ведь писали это в предыдущем посту. Буду разрабатывать программную защиту или релейную. Спасибо за совет.
Попробовал Ваш код. Вообще перестало отображать на LCD уровень =).
А вот с переделкой блока Level по вашему совету, ещё не занимался. Но выглядит гораздо более красиво нежели чем моё кладбище IF. Спасибо буду "пилить".
А если какой затык и датчик завис между герконами? Здесь, имхо, правильнее будет сделать временную зависимость.
Я отсёк минимальное значение
не понял. что тут отсекается, один раз печать проходит
Ну я читаю это так
1)Если переменная в которую пишется значение приходящих вольт меньше ( if (volts .....) )
2)Открываю цикл (do)
3)Пишу предыдущее значение (lcd.set-print)
4)До тех пор пока значение переменной не превысит минимальный порог. (while)
Наверно я не понимаю того, что до меня хотят донести.
заход в цикл идет по условию ифа volts_2 < 0.44
в цикле (do) volts_2 не изменяет своего значения, т.е. условие
while
(volts_2 > 0.49); не имеет смысла в силу условия ифа
соотв цикл можно почикать и оставить только вывод
1
if
(volts_2 < 0.44)
2
{
4
lcd.setCursor(6, 3);
5
lcd.print(persent_barrel_2);
7
}
Ну я читаю это так
1)Если переменная в которую пишется значение приходящих вольт меньше ( if (volts .....) )
2)Открываю цикл (do)
3)Пишу предыдущее значение (lcd.set-print)
4)До тех пор пока значение переменной не превысит минимальный порог. (while)
Наверно я не понимаю того, что до меня хотят донести.
Донести хотят то, что сейчас в зависимости от условия в if печать либо не выполнится совсем либо выполнится один единственный раз. Сдаётся мне, Вы условие попутали. Если под while условие истинно, то цикл повторится, если ложно, то повторения не будет. Для того, что Вы хотели, небось знак перевернуть надо.
Но если это так, то это плохо - в системах автоматизации зависать в таких потенциально бесконечных циклах.
До вас хотят донести, что в случае аварийной ситуации, информация об этом отсутствует. Вода в т.ч. и дождевая, значит водоросли, улитки и т.п. - поплавок может реально зависнуть, а насос, знай себе качает.((((
Вариант ВН, не очень нравится по причине, если в этот период еще и перебой с электроэнергией произойдет, предыдущее значение будет утеряно.
Как вижу я, понять можно только на живой системе, от нее и разрабатывать алгоритм.
При максимально возможном расходе, подача может быть меньше, равна или превышать расход.
Первые два, самые гнусные, т.к. невозможно определить, расход равен подаче или поплавок висит, если такое возможно, значит надо вводить какой то верхний независимый датчик.
Если подача всегда выше расхода, через определенный интервал обязательно должно произойти срабатывание какого либо уровня. Если не произошло, значит либо зависший поплавок, либо неполадки с насосом (подразумеваю, что наличие воды в предварительном бачке мы контролируем), это уже аварийная ситуация и требует вмешательства. Как то так.
тут вообще есть такая проблема, как реализовать процесс старта. т.к. магнит может висеть в промежуточной зоне.
Что тогда считает система - в баке минимальный уровень воды?
Далее система включает насос и ждет появления первого сигнала с какого-то уровня, в случае моего алгоритма этот уровень и принимается за текущий. Либо просто первый измеренный, если зона не промежуточная.
т.е. Бак тут сам является ячейкой памяти.
тут вообще есть такая проблема, как реализовать процесс старта. т.к. магнит может висеть в промежуточной зоне.
Что тогда считает система - в баке минимальный уровень воды?
Далее система включает насос и ждет появления первого сигнала с какого-то уровня, в случае моего алгоритма этот уровень и принимается за текущий. Либо просто первый измеренный, если зона не промежуточная.
т.е. Бак тут сам является ячейкой памяти.
Ни в коем рази не хотел критиковать, а только указать ТС на подводные камни. Что расписано у меня, тоже не идеал, поплавок может зависнуть и на максимуме, и бак всегда полный.))))
Пока что у ТС, вообще никаких защит и мониторингов. А алгоритмов, сами знаете, всегда вагон и маленькая тележка.))))
тут вообще есть такая проблема, как реализовать процесс старта. т.к. магнит может висеть в промежуточной зоне.
Что тогда считает система - в баке минимальный уровень воды?
Далее система включает насос и ждет появления первого сигнала с какого-то уровня, в случае моего алгоритма этот уровень и принимается за текущий. Либо просто первый измеренный, если зона не промежуточная.
т.е. Бак тут сам является ячейкой памяти.
У меня считает что бак не полон и его можно доливать. Но и не пуст и с него можно брать воду. А уж когда сработает геркон, тогда и определимся с уровнем.
До вас хотят донести, что в случае аварийной ситуации, информация об этом отсутствует. Вода в т.ч. и дождевая, значит водоросли, улитки и т.п. - поплавок может реально зависнуть, а насос, знай себе качает.((((
Вариант ВН, не очень нравится по причине, если в этот период еще и перебой с электроэнергией произойдет, предыдущее значение будет утеряно.
Простите мне мою невнимательность, Вы ведь писали это в предыдущем посту. Буду разрабатывать программную защиту или релейную. Спасибо за совет.
заход в цикл идет по условию ифа.
Попробовал Ваш код. Вообще перестало отображать на LCD уровень =).
А вот с переделкой блока Level по вашему совету, ещё не занимался. Но выглядит гораздо более красиво нежели чем моё кладбище IF. Спасибо буду "пилить".