Управление обратным осмосом, на базе "наны"

Dottore
Offline
Зарегистрирован: 19.11.2016

Здравствуйте, товарищи! Я только собираюсь попробовать свои силы в применении ардуины в быту, заказал на ебее нану, пока жду. Применить хочу для начала для очень простой задачи. Изучил здешний форум, но не нашел ничего похожего под мою задачу. Необходимо автоматизировать управление домашней установкой водоочистки. Сейчас все работает на простой схеме с 2 датчиками и 2 электроклапанами, без всякой электроники, но творческий зуд подмывает сделать дополнительную процедуру промывки мембраны автоматически по времени 2 раза в сутки + в момент начала и окончания фильтрации. Можно, конечно и без ардуины в этом деле обойтись, но в идеале хотелось бы далее научить её контролировать температуру воды, степень очистки, и возможные протечки воды вцелом на кухне с перекрытием воды и оповещением. Прошу дать мне стартовый пинок, так сказать, ткнуть носом в примеры скетчей циклического суточного (12 часового) таймера, с целью открывать электроклапан на 15 сек каждые 12ч например, а кроме того и при смене уровня на конкретном порту?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Dottore пишет:
Прошу дать мне стартовый пинок, так сказать, ткнуть носом в примеры скетчей циклического суточного (12 часового) таймера, с целью открывать электроклапан на 15 сек каждые 12ч например

Пинок - Тыц

Формируете два подобных счётчика, на 12 часов и 15 сек, когда сработает первый (через 12 часов), включаете клапан, разрешаете работу второго счётчика и запрещаете работу первого. При срабатывании второго счётчика, отключаете клапан, разрешаете работу первого счётчика и запрещаете работу второго. Получите цикличность  - через 12 часов сработает клапан, который через 15 сек отключится.

Цитата:
а кроме того и при смене уровня на конкретном порту?

Тыц (Цифровой ввод-вывод)

А вообще, составьте для себя "из квадратиков" алгоритм работы на бумажке, будет проще описать всё с помощью кода...

Dottore
Offline
Зарегистрирован: 19.11.2016

Премного благодарен, думал вообще никто не ответит :)  Я вот тут за прошедшее время узнал о существовании RTC DS3231, там есть 2 будильника, и у меня сразу возник вопрос, а какова логика срабатывания будильника, он просто шлет некий код по шине передачи данных, или выставляет некий логический уровень на аппаратном выходе, если да, то в виде импульса и можно ли задавать его длительность? Т.е. может просто настроить 2 будильника и пусть он 2 раза в сутки открывает кларан, и один логический элемент добавить для дополнительно включение по смене уровня (начало/конец фильтрации)...

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Dottore пишет:
или выставляет некий логический уровень на аппаратном выходе, если да, то в виде импульса и можно ли задавать его длительность?

С этой м/с не работал, но мельком глянув в даташит: есть аппаратный вывод SQW, на котором, взависимости от конфигурационных бит RS1 и RS2 в регистре 0Eh (см 13 страница даташита) частота импульсов может быть 1Гц, 1 или 4 или 8 кГц.

А вообще, стОит ли лезть в такие сложности?
Для ваших целей (периодическое срабатывание, не требующее какой-либо точности) простой дуины - за глаза. Для дальнейшей модернизации, если освоитесь, можно оставить пины с I2C свободными и перекроить под RTC, если потребуется. Сделайте сперва проект попроще, усложнить всегда успеется.

Разбейте работу на этапы -
Для начала, составьте базовую схему устройства - чем питать, как управлять клапанами (ключи) и какие планируются датчики.
Затем, простой алгоритм - что и когда должно происходить.
Далее, программно, реализуйте "кирпичики" - открыть-закрыть клапан, считать состояние датчика, "отмерить" интервал времени (его можно для отладки уменьшить до десятков секуд). Ну а потом всё это "сочлените" согласно вашему алгоритму...

Dottore
Offline
Зарегистрирован: 19.11.2016

Питание 24В (электроклапаны) далее DC-DC преобразователь для ардуины.

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

2 нормальнозакрытых электроклапана: 1 - на подачу воды в систему, 2 - промывка мембраны (обеспечивает байпас в обход дренажного дросселя).

2 контактных датчика давления:

датчик 1 - нормально разомкнутый - стоит перед клапаном 1, определяет наличие воды в водопроводе, при давлении выше 1бар - замыкается и является условием работы всей программы фильтрации, иначе стоп и ожидание выполнения условия "1".

датчик 2 - нормально замкнутый, (условие "2"), стоит на выходе пермеата, размыкается при достижении давления 3бар в накопительной ёмкости, что является условием прекращения фильтрации.

на сегодня, датчики просто коммутируют по вышеописанной логике электроклапан 1 и всё. электроклапан 2 пока отсутствует, промывка осуществряется ручным краном, что напрягает :)

Алгоритм: при включени питания программа стартует, проверяет условие "А", если "1", то проверяет условие "Б", если "1", то включает клапан 1 до достижения состояния "0" условия "Б", одновременно включает клапан 2 с отсчётом 15 сек.

Если условие "Б"="0", то открывается клапан 2 на 15 сек, после чего начинается отсчёт 6ч интервала.

По достижении состояния "0" условия "Б", включается клапан 2 с отсчётом 15 сек, по истечении которых выключаются оба электроклапана. После чего начинается отсчёт 6ч интервала.

При изменении состояния условия "Б"  с "0" на "1" текущий таймер отсчёта интервала сбрасывается и останавливается.

Условие "А" контролируется круглосуточно, при его падении в "0", программа безусловно прерывается и ожидает состояния "1".

Дополнительно предполагается ввести условие "В" - сопротивление на аналоговом входе N (сухой датчик протечки="0", мокрый = "1"), если "1" - безусловно отключаем все клапаны, включаем зуммер на цифровом выходе х (в дальнейшем подаем 7сек импульс на закрытие шарового злектровентия на стояке ХВС, совершаем звонок хозяину через модуль GSM), кроме того, хотелось бы внести постоянный мониторинг температуры воды и солесодержания пермеата, а так же напоминание о замене картриджей предфильтрации раз в три месяца (тут уже без RTC никак) и мембраны по превышению уровня солесодержания. Однако наткнулся на сложности с поиском датчика проводимости/температуры жидкостина ебее. В комплектах с др. оборудованием они продаются валом, а отдельно не могу найти, хоть тресни, только пара вариантов из США по конской цене...

Ну, как-то так :))))

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Dottore пишет:
Дополнительно предполагается....

Думаю, сперва реализуйте простую часть алгоритма...

В качестве датчика протечки и температуры жидкости

Dottore
Offline
Зарегистрирован: 19.11.2016

Спасибо, датчик протечки такой и предполагался, а вот второй имелось ввиду датчик проводимости кондуктометр, TDS sensor, (он же и температуру меряет по совместительству), для определенияэффективности работы мембраны обратного осмоса и необходимости её замены.

Кондуктометр http://www.ebay.com/itm/Arduino-Conductivity-Sensor-/131924239855?hash=item1eb74c25ef:g:6mcAAOSwlfxXG~Nk

http://www.ebay.com/itm/D-D-INLINE-TDS-METER-MONITOR-RO-TESTER-REVERSE-O...

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Обалдеть, модуль измерения TDS 90$... Тоже подумываю автоматизировать осмос, добавить автопромывку по опустошению бака перед набором, поставить защиту от дёрганья при низком входном давлении, да и индикацию режимов и tds прикрутить. Может ещё расходомер с индикацией текущего объёма в баке. Но при таких ценах на модуль, сопоставимых с готовым контроллером, видимо придётся или подключаться к китайскому тдс-нику, или колхозить измерительный модуль на рассыпухе.

Dottore
Offline
Зарегистрирован: 19.11.2016

tekagi пишет:

Обалдеть, модуль измерения TDS 90$... Тоже подумываю автоматизировать осмос, добавить автопромывку по опустошению бака перед набором, поставить защиту от дёрганья при низком входном давлении, да и индикацию режимов и tds прикрутить. Может ещё расходомер с индикацией текущего объёма в баке. Но при таких ценах на модуль, сопоставимых с готовым контроллером, видимо придётся или подключаться к китайскому тдс-нику, или колхозить измерительный модуль на рассыпухе.

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

http://www.ebay.com/itm/new-tds-conductivity-test-water-quality-detection-probe/222135461644?hash=item33b84e270c

А вот здесь видно, что в самих датчиках стоит компаратор или что-то подобное, т.к. 4 провода идут...

http://www.ebay.com/itm/d-d-inline-tds-meter-monitor-ro-tester-reverse-osmosis-marine-aquarium-fish-tank/190469671751?hash=item2c58e08b47

Однако вот здесь http://www.ebay.com/itm/RO-Water-Filter-LCD-Display-Control-TDS-water-quality-Life-Monitor-Alarm-System-/172233238669?&_trksid=p2056016.m2518.l4276

использован простой датчик без начинки, аналогичный первой ссылке. Человек, разбиравший этот блок, сказал, что он собран очень примитивно, чуть ли ни на ПИК контроллере. Так что вопрос в алгоритме измерения пересчета показаний датчика. Откалибровать можно по солевому раствору, контролируя обычным "фломастером", нам ведь абсолютная точность не нужно, важны относительные показания... :)

А насчёт расходомера для исчисления остатка в баке, придется же ставить 2 расходомера, либо ставить двунаправленный расходомер, но я таких не видел. Там же датчик Холла, ему все равно, в какую сторону считать. Так что надо 2 и путем вычитания получать актуальное количество, причем нужно будет его обнулить сперва на пустом баке, надо этот алгоритм продумать....

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Мне в этом плане отчасти проще, система с насосом. Есть импульсы с датчика - проверяем, работает ли насос. Если да - наполнение, если нет - расход. Правда, может быть накладка при одновременном наборе бака и расходе воды, но это надо будет проверять экспериметально, возможно отлавливать изменение частоты импульсов с расходомера. Конечно, проще поставить два расходомера, но пока заказан и едет один (выделеный на это дело бюджет съели соленоиды, а ещё надо обратный клапан под JG брать, 5$ за кусочек пластика...)

Обнуление планировал сделать колхозным методом - поставить бак на подпружиненую площадку с конечником.

Dottore
Offline
Зарегистрирован: 19.11.2016

А я не вижу разницы с насосом или без. У вас датчик высокого давления управляет насосом и электроклапаном, у меня только электроклапаном, но цепи управления абсолютно идентичны. Обратный клапан у меня стоит интегрированный в уловой фитинг выхода пермеата из мембраны, стоил года 3 назад рублей 45 в оффлайн магазине :)

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

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

Dottore
Offline
Зарегистрирован: 19.11.2016

С этим согласен, а вы хотите процесс обратной промывки тоже автоматизировать?! Кстати, вы какую ардуинку планируете применить для осмоса?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Промикро или нанку. В любом случае мега328 5в. В принципе ради промывки всё и затеваю. Только что заказал модуль дождя (сенсор протечки) и термосенсор дс18б20. Может задумка наконец стронется с мёртвой точки. Буду учиться в процессе :)

Dottore
Offline
Зарегистрирован: 19.11.2016

А датчик температуры куда планируете установить?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Либо вклеить в JG-тройник, либо использовать металлическую трубку, прижать гильзу датчика и термоизолировать снаружи. Но это всё в дальних планах, пока начну с промывочного таймера и индикации на 1602.

Dottore
Offline
Зарегистрирован: 19.11.2016

tekagi, приветствую! Получил я наконец из Китая Нано, даже попробовал залить в нее циклический таймер, мигает светодиодом в 1Гц, но на большее я пока не способен. Я надеюсь, у вас гораздо больше опыта в программировании? Вы еще не делали промывочный таймер?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Опыта маловато, но дорогу осилит идущий :)
Из действующих конструкций на дуине пока только мод тестера батарей от bodriy2014 (перебирал авторский скетч).
Вчера забрал с почты дисплей и i2c модуль к нему, релюшки есть, как разберусь с библиотекой таймера - начну эксперименты. Пока думаю, как снять сигнал с реле давления, не нарушая нынешнюю цепь. Скорее всего будет опторазвязка, но у самодельной ниже повторяемость, а модулей такого типа я пока не встречал.
Вечером скину список модулей, что планирую использовать. Пинайте хотя бы раз в неделю, чтобы не забросил))

Dottore
Offline
Зарегистрирован: 19.11.2016

Идея: Датчик высокого давления рвёт цепь +24В, подключитесь к ключевому контакту датчика, и через резистор примерно 10кОм подайте на логический вход Ардуины, ограничив стабилитроном, чтоб оставалось 3,3В. массу Ардуины соедините ествественно с массой насоса. А какой дисплей и i2c модуль к нему планируете применить, можно ссылку?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Для таймера будет достаточно собственно ардуинки, DC-DC конвертера и нескольких реле . Чтобы видеть текущее состояние системы самый обычный дисплей 1602 и модуль I2C к нему. Можно было бы обойтись и без модуля, но хочется иметь побольше свободных пинов. Ну и на будущее - расходомер, термометр, RTC, датчик протечки. Ну и кнопки, естественно.

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

По управлению соленоидами и насосом - пока в сомнениях, использовать релейные модули или полевики.

Dottore
Offline
Зарегистрирован: 19.11.2016

Не вижу смысла пользовать реле в 21 веке при наличии дешевых полевых ключей с защитным диодом. Дайте хоть одну весомую причину? Для развязки никаких причин аналогично не вижу. Цепь питания общая, ток постоянный....

Дисплей какой то мрачный, подложка синяя и без подсветки, а что на нем можно увидеть вообще?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Dottore пишет:

Не вижу смысла пользовать реле в 21 веке при наличии дешевых полевых ключей с защитным диодом.

Может и что-нибудь из серии IRLZ поставлю, посмотрим. На скетче это сильно не отразится (только инверсией выходного сигнала).

Dottore пишет:

Для развязки никаких причин аналогично не вижу. Цепь питания общая, ток постоянный....

В цепи стоят два реле давления, цепляясь параллельно каждому мы можем снимать незваисимые сигналы. Если снимать через резистор - при сработке одного РД мы не увидим сработку другого. (можно, конечно, прицепить параллельно РД по резистору, и сравнивать сигналы на входах, но не хочется). Ну и охота сделать повторяемую конструкцию, без особого изменения схемы. У кого-то РД сухого хода стоит ближе к плюсу, у кого-то к минусу... При опторазвязке этих проблем нет, и оптроны копеечные. Ну и помехоустойчивость выше (особеннно учитывая выплески с соленоидов).

Dottore пишет:

Дисплей какой то мрачный, подложка синяя и без подсветки, а что на нем можно увидеть вообще?

Дисплей нормальный, подсветка есть :) Единственный минус - нет кириллицы. Но мне это некритично. В принципе подойдёт любой 1602 на контроллере HD44780.

Dottore
Offline
Зарегистрирован: 19.11.2016

Для повторяемости надо датчики давления тупо заводить на ардуину, а соленоиды и насос запитывать ключами и не городить огород, я считаю :)

А в описании дисплея написано что подсветки нет...

Вот как например люди делают, жаль, это контроллер осмоса, скетчем поделиться не хотят... :

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Не люблю я все датчики заводить на электронику. Даже при сборке простых щитов автоматики стараюсь аварийные цепи дублировать дубовыми электромеханическими устройствами. "Мозги" подвисли, реле залипло, ключ пробило - уже нет возможности отреагировать на видимую аварийную ситуацию. А так и контроллер видит аварию, и "железное" выключение происходит.

Ниже на странице на фото: "Blue Backlight". Заказывал именно у этого продавана, дисплейчик сейчас лежит передо мной, светится синим и мигает тестовым скетчем.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Dottore пишет:

Вот как например люди делают, жаль, это контроллер осмоса, скетчем поделиться не хотят... :

Линк можно? Коммерческая разработка?

На работе стоит промышленный контроллер осмоса, Мега16, такой же дисплей, замер TDS и температуры, счётчик наработки часов, управление промывкой и насосом, входа от двух РД и внешнего останова от предфильтра.

Dottore
Offline
Зарегистрирован: 19.11.2016

Линка нет, чел в личке обмолвился что сделал несколько лет назад и забыл. скетч якобы не сохранился....

А дисплейчик в работе и правда симпатичен, пожалуй возьму тоже, на ебее блин 105руб. придётся у вашего продавца заказать :)

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Наброски и эксперименты здесь. Пока реализован только таймер промывки и частично индикация.

Dottore
Offline
Зарегистрирован: 19.11.2016

Приветствую! Изучил Ваш счетч и схему, доработал Вашу схему под себя.  Я считаю, теперь нужно реализовать алгоритм "антидребезга" чтоб насос не включался от кратковременного падения давления при наборе воды из бака, например 10 сек, а когда включает насос для начала фильтрации - одновременно включал промывку на 10 сек. А так же, по сигналу достижения высогого давления аналогично сперва включалась промывка на 10 сек, а потом уж выключался насос. Кроме того есть идея: в описании алгоритма одного из промконтроллеров осмоса реализована идея циклической промывки импульсами по 5 сек. мотивируя это тем, что длительная монотонная промывка неэффективна, т.к. отложения срывает лучше при скачках потока. Может реализовать вместо 1х15сек сделать 3х5сек с интервалом в 1-2 сек.

Кстати, цоколевка выходов Вашей платы и Нано, совпадает?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Нумерация выводов вроде одинаковая, а вот расположение отличается.
Скетч пока экспериментальный, в нём не реализован минимально требуемый функционал (например, нет управления входным клапаном/помпой).
Задержка включения набора будет, эта часть несложная. А вот как сделать антидребезг по реле сухого хода - пока не знаю. (при старте помпа может дёргаться, если давление в трубопроводе выше давления включения, но ниже гистерезиса). Скорее всего при наличии дёрганий на старте буду останавливать алгоритм на полчаса.
Про импульсный режим промывки тоже думал (хотя в нашем промконтроллере промывка сплошным потоком).
Есть ещё один подводный камень: после промывки (а также при начале фильтрации после простоя) несколько минут с мембраны идёт вода с гораздо более высоким содержанием солей (при обычных 50 доходит до 200-300), это одна из причин, почему я хочу вынести обратный клапан за пределы уголка (иметь возможность сливать эту воду в канализацию). По этой же причине не хочу делать донабор бака, а ждать опустошения, промывать и набирать с нуля. Плюс это не даст воде в баке застаиваться.

Dottore
Offline
Зарегистрирован: 19.11.2016

Предлагаю дребезг помпы оставить на потом, т.к. меня он не касается, мне интереснее дребезг при верхнем давлении.... Как это после промывки подскакивает TDS? Ведь промывка перед началом набора для того и применяется, что-бы исключить этот неприятный эффект - повышение TDS при начале фильтрации после простоя? 50-200 это в каких еденицах? насчёт полного опустошения бака мысль интересная, но будет ли удобно на практике, в один прекрасный момент, когда захочешь попить чаю, понять, что бак пустой и нужно ждать?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Даже если в середине набора поставить на промывку - тдс подскакивает, потом за минуту-полторы приходит в норму. Физику процесса не совсем понимаю, может за счёт того, что смывает отложения и пока более крупные отверстия не закроются проходит больше примесей, может за счёт механического перемещения мембраны поднимается часть застоявшихся отложений с внутренней стороны. Эффект наблюдал неоднократно.
Либо донабор и мириться с застоем, либо цикл с опустошением. Мне ближе второе, но первое в разы проще реализовать.

Мерял в микросименсах. Входная вода у меня вообще колеблется в пределах 1300-2000.

Dottore
Offline
Зарегистрирован: 19.11.2016

Хммм... Странный эффект, впервые от вас о нём услышал. Надо будет на форуме по осмосу попытать людей, у кого осмос без бака, пусть проверят!
А какого "застоя" Вы боитесь в баке? Чему там "застаиваться", если вода практически стерильна?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Бактериалка всё равно есть, а озон не поставишь - резиновая мембрана в баке его боится. Даже если набрать воду после осмоса в стерильную тару и оставить на недельку-другую тдс будет медленно расти. Не стерилизовать же регулярно систему.
Всё имхо, может где и не доглядел)

Dottore
Offline
Зарегистрирован: 19.11.2016

Зря волнуетесь, мембрана изготовлена из EPDM - этилен-пропиленового каучука — это синтетический эластомер, обладает высокой стойкостью к УФ излучению, отличается хорошей стойкостью к воздействию озона, низких и высоких температур, имеет высокую сопротивляемость к окислению. Периодически в бак надо добавлять немного перекиси водорода, вот и всё. Но это секрет! :)
Что касается ваших замеров в микросименсах, если переводить в милионные доли округлённо 1:2, то как то великоваты у вас получаются значения... С мембраны 25ppm в норме и 100ppm после промывки это как-то не реально...

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Dottore пишет:
Что касается ваших замеров в микросименсах, если переводить в милионные доли округлённо 1:2, то как то великоваты у вас получаются значения... С мембраны 25ppm в норме и 100ppm после промывки это как-то не реально...

Факты - вещь упрямая) Минимум, что мне удавалось получить - 17мкСм, когда проводимость входной воды падала до 400 и стояла филмтековская мембрана. Нонче стоит Вонтрон.

Сейчас замерил входную воду - 1740 микросименс.

Про мембрану бака почитаю, любопытно.

Озон если и буду ставить - то даже не в ближайших планах, поэтому в алгортим включать не собираюсь.   Генератор зона, инжектор, рециркуляция... слишком много заморочек, как для бытовой системы. Ультрафиолет тоже - лампа недолговечная, дорогостоящая, не любит частых включений-выключений. LEDов нужного спектра (емнип 264нм) по вменяемым ценам не встречал в природе.

По схеме - это пока наброски, буду вносить изменения.

Dottore
Offline
Зарегистрирован: 19.11.2016

Хотите совет бывалого? При установке мембраны подматывайте штуцер пермеата (где 2 колечка уплотнительных) лентой ФУМ. Сразу заметите снижение TDS. У меня если мерить без бака - 5ррm. в полном баке - 10ppm. На входе зимой, 130, летом 200, весной все 300ppm.
Прошу вас первоочерёдно внести в скетч коррективы насчет циклической промывки, антидребезг при включении и пред/пост промывку при включении/выключении фильтрации. Я ьюы уже попробовал в железе :)))

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Возникла дилемма с дребезгом по окончанию набра бака. Как ведёт себя система без помпы - не знаю, моя дёргается 3-7 раз с неравномерным интервалом (от 0,3 до нескольких секунд).

Если сделать задержку в несколько десятков секунд (минут) после первого срабатывания реле набора - можем на выходе получить распределённый во времени дребезг с интервалом задержки. Пока склоняюсь к идее по первому срабатыванию считать бак почти полным, заблокировать реле высокого давления релюшкой на некий интервал, скажем, секунд 20, за который давление в баке гарантировано поднимется выше гистерезиса реле давления. Но поскольку при возможном зависании дуины в данном положении (маловероятно, но учесть хочется) не будет возможности остановить насос по аварийному давлению хотелось бы прицепить сторожевую собаку, а ардуиновский загрузчик её не любит (по тем крохам информации, что удалось найти). Конечно, это решается сменой бутлоадера или прошивкой программатором вовсе без загрузчика, но повторяемость в этом случае будет хуже...

Ну и пока не реализовал стартовую промывку.  Получается, что при каждом донаборе бака мы будем дважды промывать мембрану - стоит ли оно того,  если набирается поллитра? Гистерезис-то на простеньких РД нерегулируемый.

 

В макетку пока не заливал, добью базовый алгоритм - начну отлавливать баги (а их, похоже, немало :) ).

Dottore
Offline
Зарегистрирован: 19.11.2016

Приветствую! Как продвигается дело? Что -то новостей от Вас нет...

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Нужен тест в железе, хотя бы в режиме макетирования. Реализованы отработка аварий, стартовая и циклическая промывка. Ресурс картриджей пока отображается "для красоты", учёт времени не реализован. На схеме перенёс входной соленоид за реле сухого хода. Нарисуйте свою схему гидравлики и какие модификации вносили в мою электрическую, чтобы я знал различия.

Dottore
Offline
Зарегистрирован: 19.11.2016

Схема гидравлики у меня простая: датчик низкого давления ->клапан -> предфильтры, мембрана, бак -> датчик высокого давления. И клапан промывки мембраны на дренаже. Электрическую схему сейчас попробую где-нибудь на облаке выложить, жаль, что здесь лички нету, проще было бы в почте обмениваться файлами...

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

t.e.k.a.g.i@yandex.ru
У меня реле низкого стоит после входного соленоида, чтобы система лишний раз под давлением не стояла.

Dottore
Offline
Зарегистрирован: 19.11.2016

tekagi пишет:
t.e.k.a.g.i@yandex.ru
У меня реле низкого стоит после входного соленоида, чтобы система лишний раз под давлением не стояла.

Простите, я не совсем понял смысл? Датчик низкого давления показывает наличие давление в водопроводе, если его нет- все цепи размыкаются. а у вас что получается? Если система в простое (бак набран, разбора нет) то ваш датчик низкого показывает нормальное давление. И вот отключили воду в водопроводе, а после этого произошел отбор питьевой воды из бака. В моем случае система будет ждать появления давления в водопроводе с закрытым входным клапаном. А в вашем - откроет водной клапан и после слива воды из колб снова закроет его по причине упавшего давления. Смысл?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Соленоид стоит на входе в колбы, сразу после входного вентиля. В обычном режиме (бак набран, РД высокого сработало по набору)  входной соленоид закрыт, давления в колбах нет (не стоят лишний раз под нагрузкой, меньше шансов, что лопнет в неподходящий момент). Когда давление в баке падает - открывается входной соленоид, если давление в магистрали в норме - стартует помпа. Самотока в канализацию нет, если входной соленоид открыт, но давление на входе ниже порога - помпа не пропускает. Поэтому и хочу видеть различия в гидравлике и схеме, для Вашей и моей системы будет разный алгоритм.

Такая схема была изначально (покупал модуль с насосом и рд в комплекте, уже расключённый), я её с тех пор не менял. Переносить РД на вход неохота - оно у меня под JG, а входные патрубки в систему 3/8 и 1/2.

 

P.S. Добавил промывку по окончанию набора. Вроде базовый функционал весь, нужен тест. Пока вместо учёта и индикации срока эксплуатации картриджей выводится пара промежуточных счётчиков (для отладки). В реальной системе может появиться растянутое во времени дёрганье из-за невозможности отстроить гистерезис реле высокого давления, своеобразный паразитный цикл промывка-набор-сработка_РД-промывка-стоп. А может и не появиться.

Dottore
Offline
Зарегистрирован: 19.11.2016

Схему отправил в почту, меня китайцы с клапаном промывки подвели, прийдётся перезаказывать, но остальной конструктив можно потестировать. Правда дисплей тоже пока не пришел...

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Можно и без дисплея, повесить светодиоды на выхода, чтобы было видно текущий режим.

По схеме: нужны резисторы по 10к с РД на общий, желательно конденсаторы по 100н параллельно контактам РД. Модуль протока планируется без компаратора, просто плата с расчёской? Я не планировал использовать аналоговый вход, рассчитано на 0 или 1 с модуля. Ну и код под эту схему придётся причёсывать.

Dottore
Offline
Зарегистрирован: 19.11.2016

Что касается протечки, естественно с компаратором, вы ссылку в начале темы давали, можно рассчитывать на него.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Пока ориентируйтесь на такую схему (перевернул сигналы с РД, поставил подтяжки и кондёры антидребезга). Пока подумаю, что поменять под неё в скетче.

Так выглядит моя макетка с опторазвязкой и аварийной отсечкой реле:

 

Ардуинку в готовом устройстве лучше делать съёмную, на штатных штырьках, для удобства перезаливки скетчей (чтобы периферия не мешала).

Управление вентилем стояка какого типа? Просто непрерывная подача с отключением концевиком?

Dottore
Offline
Зарегистрирован: 19.11.2016

А зачем делители на затворах ключей?

Вентиль стояка планируется такой http://www.ebay.com/itm/G1-2-039-039-DC12V-Electrical-DN15-Valve-2-Way-CR02-3-Wire-Brass-Motorized-Ball-Valve-/142140926562?&_trksid=p2056016.l4276

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Dottore пишет:

А зачем делители на затворах ключей?

Это не делители. Резистор от дуинки 470 Ом ограничивает ток заряда затвора (нежные шибко китайские меги, лучше перебдеть), резистор на общий в 100к не даёт полевику бесконтрольно открываться, пока выводы дуинки находятся в высокоимпедансном состоянии (при старте, пока работает загрузчик, а это несколько секунд цветомузыки).

Как я люблю продаванов, которые не только не дают документации на товар, но ещё и шильдик стесняются сфотографировать... То ли внутри аналог сервы с обратной связью, то ли двигатель с переключаемой полярностью, то ли один общий провод, один на открытие, один на закрытие...

upd.: Что-то нашёл. Один хвост общий, один на открытие, один на закрытие. Вроде контроллер внутри сам выключает двигатель в крайних положениях. В схеме под него надо 2 ключа, либо делать закрытие автоматом, а открытие в ручном режиме перекидной кнопкой. Вдобавок управление реализовано по плюсовому проводу, поэтому полевики нужны Р-канальные, плюс управляющий биполярник на каждый. Или опять возвращаемся к  сдвоенному реле.

 

upd.2: В процессе экспериментов пару раз подвесил ардуинку, в основном при пропадании контакта в макетке или по цепям питания. Всё больше задумываюсь про watchdog. Но это тянет за собой смену загрузчика на оптибут либо прошивку хексом вовсе без загрузчика, через программатор.

Dottore
Offline
Зарегистрирован: 19.11.2016

Появилась мысль: добавить модуль часов с календарем, соответственно можно будет сделать напоминалку по замене картриджей по сроку, если не выработан литраж. Особенно это касается постфильтра. Ну и раз уж устройство будет светиться с дисплеем на кухне, пусть хоть полезную роль часов заодно выполняет :)

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Учёт времени наработки картриджей и напоминалка будет, но к RTC пока привязываться не хочу. Просто буду считать сутки работы прибора. Часы на 1602 не слишком юзабельны - цифры мелкие, приглядываться надо. Если хотите - можете добавить, примеров кода часов хватает. Выводить можно в свободное место дисплея.

Изначально выводил время до следующей промывки, но видимо и от этого откажусь - таймер сбрасывается по событиям, поэтому получается не совсем наглядно. Картриджи будут отображаться пиктограмками, четыре штуки: чистый, чуть загрязнён, средне загрязнён, загрязнён. По окончанию срока, заданного в скетче иконка "загрязнён" будет мигать.