Замена механического реле давления на цифровое (обладателям скважин)

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

    image

    image

    Прошу под кат, там интересней ;)

    Я как бы разобрался и у меня даже получилось отрегулировать, но на это я затратил время и нервы. Тогда то я и понял, что цифровое реле было бы здорово, просто нажал на кнопки и выставил нужное. Конечно меня могут многие осудить по нескольким статьям:

    — ты дурак, что не можешь разобраться с простейшим реле давления и двумя пружинками.
    — механика рулит, она будет работать вечно.
    — зачем там что то регулировать: один раз выставил сантехник за XX*(курс страны) рублей и все

    Без проблем, можно список продолжать долго, но по натуре своей инженерской, хотелось бы развиваться и улучшать все вокруг себя, а не крутить пружинки и думать, когда там подгорят контакты механического реле и начнет срабатывать тепловое реле защиты насоса, когда вы весь в мыле :D, а ещё лучше Ваша жена :)

    Надо отдать должное, механическое реле у меня работает уже 4-ый год и с ним (тьфу тьфу тьфу) Серьёзного пока ничего не случалось, только приходилось перестраивать, очищать контакты, начало искрить и эти “ЩЕЛК!” в гараже немного напрягали и… пугали моего мышонка, так, что ему пришлось убежать.

    Побег


    Так как я увлекаюсь автоматизацией и прошел путь от 1-wire до arduino через esp, могу и делаю разные поделки в доме, точнее устройства, для облегчения быта. Круг друзей знает о списке проектов, которые я стараюсь завершить и реализовать, но времени на то совсем нет. То стройка баня подвернется на целое лето (750 часов), то снег навалит :), а тут уже и Новый Год на носу!

    image

    Меня так же многие “любят” потролить, особенно из ИТ сферы. Но это только веселит, жизнь штука интересная и без этого никак. Так же огромное спасибо всем тем, кто меня поддерживает — без Ваших добрых слов, драйв был бы не тот. Спасибо жене за понимание любви к моим платам )

    Из лирики, прыгаем в реальность. Я обратился в поиски цифрового реле и понял, что весьма сложно в этом направлении, либо забугорное под 100$ и совсем не так, как хотелось бы… либо механика за 15$. Привожу в $, так как давно известно, если бы мы перешли на $ — то даже бабушки не парились, как с монетами. А я ж такой негодяй — дом подключил к интернету, а реле давления нет — сумасшедший!

    Тема для тролей: Я начал работать с Arduino китайского происхождения, не оригинальные, а китайские, работают так же, где то есть мелкие погрешности, но они меня не задевают так, чтобы извергать лаву негатива и трясти esp8266, которая от статики умирает быстрее, чем вы воткнете её в Ваш компьютер, да ещё с питанием 3.3, которое надо пойти и найти), если это только не NodeMCU, которые я обожаю.

    Я люблю и esp8266 и Arduino и людей, но чтобы вот так сесть быстро собрать рабочее и СТАБИЛЬНОЕ устройство для автоматизации — arduino незаменимая штука + Wiring C-шный язык очень помогает быстро реализовать то, что требуется. (тут никто и не упрекнет, что ты написал на тормозном Lua скриптовом языке). esp8266 (моё мнение) — хороша там, где не надо АЦП мерять и интернет нужен. Хотя её “сгорание\сырость” очень разочаровывает.

    Возвращаемся к нашим баранам, то-есть реле :)

    По итогу нашел в Китае датчик за 5$, с АЦП 0-5V и решил попробовать. Даже не так, я тупо загорелся его применить и собрать устройство. Сразу пошли бурные эротические фантазии, как будут мигать светодиодики ) и нажиматься кнопки для регулировки, а на китайском иконическом синем экране будут гореть заветные циферки и все это будет работать с реальным давлением в нашей гребенке.

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

    Когда прилетел датчик, я понял — что датчик очень качественно выполнен.

    image

    Далее, я понял что он начинает показывать данные не с нуля, а с 0.5В и до 4.5В. от 0 до 12Bar. Я очень обрадовался, так как мне было приятно осознавать сингулярность данного девайса, можно отслеживать, когда датчик умрет и не будет показывать заветные 0.5 на выходе.

    Врезка датчика в текущую систему с оставлением механики “на всякий случай”.

    image

    Одно печально, не было никаких данных по датчику, как обсчитывать его показания, но так как была линейная прямая на графике, пришлось (стыдно, но я признаюсь) — открывать учебник АЛГЕБРА и учиться заново, вспоминать, как же там строят прямую линейную зависимость в уравнении :) по двум точкам и о чуда, я быстренько получил (можете постыдить меня) заветную простую формулу, в которой после преобразования АЦП сигнала в ВОЛЬТЫ, я понимал, сколько у меня давление в Bar. Так как датчик сам выдавал от 0 до 1.2Mpa — то не сложно перевести в Bar — зная что:

    1 Pa = 1.0E-5 bar
    тоесть 1200000Pa = 12Bar
    Так как у нас давление от насоса не превышает и 4Bar — этого датчика хватит за глаза!

    Дальше я взял Arduino Uno — она у меня лишняя валялась, я обычно её использую для быстрого навесного проектирования, проверки, а потом применяю Arduino Nano, так как она лишена левого обвеса и её размеры в 3 раза меньше! И да простят меня ардуинщики китайского происхождения, мне жалко было смотреть, как она валяется без дела, надо пустить её в девайс! Подумал я и купил пластиковую IP55 коробку небольших размеров, выпили отверстие под экран, который я купил 4 года назад! Карл! И тогда не догадывался, что этот LCD 16*2 пойдет в такое полезно дело. Взял на авторынке 2 авто кнопки, спаял провода, даже плату не проектировал отдельно, как я делаю для Nano — так как Uno тупо большая и совсем не для таких целей.

    image

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

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

    В алгоритм я постарался заложить следующие принципы:

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

    нижнее давление — текущее давление — высокое давление
    индекс падения давления — [ блоки, показывают давление в системе ]

    Это позволяет быстро оценить ситуёвину, что происходит.

    image

    — Если текущее давление ниже НИЖНЕГО: врубается твердотельное реле на 15A(проверенное годами) и насос тихо, быстро, без искр и щелчков, включается и подает воду. ВЕРХНЕЕ давление отключает реле. Насос никогда не включится и обязательно выключится, если что то с показаниями датчика, которые выходят за пределы разумного. Это безопасность.

    — Индекс падения давления я рассчитываю тогда, когда в гребенке остается половина давления и каждые 10 секунд проверяется предыдущее и текущее, если разница составит меньше установленного по дефолту 0.05 — тогда меняется текущий индекс и включается насос на ОПЕРЕЖЕНИЕ, тоесть по логике идет быстрое водопотребление и что бы предугадать включение насоса, я такой логикой и пользуюсь. Логика не срабатывает пока на 100%, так как я ещё тестирую этот момент, есть огрехи связанные с millis() таймингом самой ардуины, тут меня это немного напрягает, но я найду решение по четкому подсчету. Логика срабатывает в начале, а потом индекс падает в 0.01 и логика больше не работает, но это никак не влияет на вкл и выкл насоса. Тут можно холиварить на тему “насос должен включаться определенное количество раз в час и не больше” — у Вас есть на это право ), спорить не буду — данная тема анализируется.

    — есть кнопки боковые, которые позволяют устанавливать НИЗКИЙ и ВЫСОКИЙ порог включения и выключения насоса ДИНАМИЧЕСКИ, без перезагрузки, просто тупо на лету — смотрите на экран и нажимаете кнопочки боковые…. удобно-на! данные сразу пишутся в EEPPROM и при включении блока загружаются оттуда (это такая постоянная память на запись чисел от 0 до 255 byte type, мало но хватает на мелкие прихоти). При этом есть момент, заключается в том, что числа с плавающей точкой записать настолько трудно и геморно, что просто было решено с моей стороны так: зная, что число x.x0 это давление float типа, его можно легко конвертировать в byte если умножить на 10 и записать в память, тоесть: example: 1.80 * 10 = 18 — после умножения число float отбрасывает последний ноль автоматически и мы получается число, которое укладывается в byte типа, при чтении, мы его делим на 10.0 и получаем обратную форму для работы в нашей система и типа float.

    — Все добро будет доступно для «только чтение» вне дома, что позволит понимать ситуацию с давлением не только артериальным, но и в трубах!

    image

    Ну вот вроде бы и все, простите, кого напрягают подробности кода, дурацких ТИПОВ данных и интимных подробностей загрузки данных из памяти, пропускайте это, так как, зная, что есть люди из ИТ сферы, они будут задавать всякого рода вопросы или наоборот, посмеются с моих простых алгоритмов, которые не применяют модные ИИ \ ML и прочие мега крутые и big data алгоритмы. Надеюсь так же инженеры поймут другие части, связанные с механической часть.

    Вообщем, вывод такой: можно делать все, можно делать легко, делать это в интерес и как сказал когда-то один мой любимый комментатор: можно быть взрослым и “играться с детскими игрушками”.

    image

    полевые испытания


    Ваш кэп, автоматизатор, capable guy и хорошего дня Вам!

    Косяки:

    — Продолжаю тестировать индекс падения давления для преждевременного включения
    — Arduino uno (Китай) — выявились проблемы с таймером millis() — буду проверять на arduino nano (раньше такого не было, предполагаю кривая модель) (не оргинал, поэтому не ною ))
    — Погрешность заявлена 1.5% — от 1.2Bar — это 0.18Bar — пофакту — у меня где то 0.3 относительно моего манометра, но я не знаю сколько он врет… поэтому 2% допускаю погрешость max — можно заложить в алгоритм (как я делаю) погрешность и бдет более менее похоже на правду. Не спутники же запускать — сойдет )

    upd: ценник в районе 15-18$ вышел по итогу за изделие.

    С наступающим Новым Годом! Пусть у Вас сбудутся все Ваши планы, будут построены БАНИ, в доме будет ТЕПЛО и вся Ваша дружная семья будет с Вами! Пусть в новом году будет только хорошие новости.
    Поделиться публикацией
    Никаких подозрительных скриптов, только релевантные баннеры. Не релевантные? Пиши на: adv@tmtm.ru с темой «Полундра»

    Зачем оно вам?
    Реклама
    Комментарии 139
    • +1
      Автор, поясни пожалуйста зачем нужен индекс давления? Ведь это реально бездельное включение электромашины, поскольку заведомо неизвестно, сколько будет продолжаться отбор воды из накопителя.
      Полагаю, оптимальным было бы включение на нижнем давлении, и отключении при достижении верхнего порога, эмулируя электромеханическое реле. Так насос будет включаться реже всего, и переживать наименьшее количество разрушительных моментов пуска.
      Вобщем, поясни свои мысли по этому вопросу, почему решил что реализовывать эту фичу действительно необходимо.
      • +2
        я так думаю это для того, чтобы при быстром падении давления насос включился до того, как станет поздно. Насос же не сразу начинает качать. А давление падает быстро. считайте это адаптивным нижним порогом.
        • 0
          все верно, спасибо. если индекс не срабатывает, сработает по низкому. у нас 3 дома и одна сисьема водоразбора. есть моменты когда можно включать преждевременно, для этого был придуман индекс этот :)
          • 0
            Частотник вам нужен на насос.
            • 0

              Он стоит знаааачительно дороже ардуины

            • 0
              На низком давлении насосу включаться легче.
            • +4
              Так для этого служит обратный клапан. То есть в трубах всегда есть вода и насос не наполняет из каждый раз, фактически да, качает сразу.
              • 0
                у меня быстрое падение давления предотвращает расширительный бак + ещё вода в нем уже не ледяная как сразу из скважины
                использую реле KPI-35, основная проблема — конденсат от холодной воды, реле приходится примерно раз в год чистить т.к. заростает окислами
                интересно как датчик этот отнесется к постоянному конденсату
              • 0
                тут ещё один скрытый плюс: если производительности насоса не хватает то включать его по нижнему пределу уже поздно. А вот включение заранее позволит распределить пиковую нагрузку между накопителем и насосом и вода в накопителей кончится позже. Возможно этого хватит, чтобы пережить без проблем эту пиковую нагрузку.
                • 0
                  Вообще то это неправильно — наличие пиковых нагрузок, с которыми не справляется насос, должно компенсироваться гидроаккумулятором. Например это может быть смыв унитаза пока кто-то другой моется в душе. Если насос не справляется систематически с водоразбором, то надо что-то делать с насосом и/или с источником воды.
              • +2
                А разве нельзя применить PID-регулирование? В 99% случаев оно помогает.
                • 0
                  верно, я тоже так подумал, но здесь нет метода ШИМ для управления насосом, тоесть для корректировки ошибок и правильного включения, так как есть автоматика насоса и она уже управляется стартом насоса.

                  здесь только адаптивный старт, либо старт при достижении низкого и выкл при достижении высокого.

                  спасибо, я тоже люблю пид, но он не для такой простой задачи
                  • +6
                    индекс падения давления я рассчитываю тогда, когда в гребенке остается половина давления и каждые 10 секунд проверяется предыдущее и текущее, если разница составит меньше установленного по дефолту 0.05 — тогда меняется текущий индекс и включается насос на ОПЕРЕЖЕНИЕ, тоесть по логике идет быстрое водопотребление


                    Еще чуть-чуть и Вы заново откроете «скорость изменения давления» и «ускорение изменения давления» )) А если Вы дойдете до ускорения, то Ваш алгоритм, по идее, должен коренным образом упроститься.
                    • 0
                      мне так захотелось считать, у вас есть конкретные примеры другой реализации? я ж не против — выкладывайте )
                      спасибо
                • +1
                  У меня насос включается по падению давления, и выключается по прекращению протока. Мне этот вариант нравится больше всего.
                  • 0
                    ага, у меня тоже так почти в 80%
                    • 0

                      Проток механическим датчиком определяете или по давлению?

                      • 0
                        Не знаю, после закрытия крана насос работает ещё 15 секунд.
                        Автоматика насоса такая: www.jeelex.ru/catalog/komplektuyushchie/avtomatika-dlja-nasosa
                        Из описания: «Блок автоматики для насоса производит запуск насоса при понижении величины давления в системе и остановку насоса в случае прекращения потока жидкости.»
                        • 0
                          Jeelex ныне — бренд, жестко противопоказанный к применению, особенно, если небезразличен результат.
                          • 0
                            это вроде частотника, который сделали сторонние разработчики? вроде бы сейчас к любому насосу более менее известному, компании производители продают свои частотники, адаптированные под свои же насосы. Так как частотник, это не просто вкл\выкл насос, там намного все сложнее с частотой вращения (глубоко стаф не знаю)
                            • 0
                              В джилексе не частотник, к сожалению.
                              Частотник доступный ищу, но пока не попадался. Вот тут бы цифровой пуск пригодился, т.к. частотник снизит нагрузки и на насос и на сеть, и тогда уже можно предиктивный старт мутить.
                              • 0
                                Посмотрите в сторону Inovert. Я с таким баловался, когда контроллер насоса разрабатывал. Однофазный вход/выход, удобен для бытового применения. так же есть и трехфазные варианты.
                          • 0
                            Скорее, это защита от залипания реле давления. Хорошо, если она сработает.
                            Иначе, насос может умереть.
                        • +2

                          У меня — по давлению в расширительном бачке. Так же просто, и манометр не забъётся ничем, так как сквозь него вода не течёт. Плюс запас воды с давлением при пропадении электричества.

                        • +1

                          Для дома не плохо! Я делал подобное, только с промышленным датчиком с выходом 4-20мА, все равно лежал без дела. Сделал ещё его калибровку и защиту по сухому ходу насоса, и защиту от закисания вала(проворот вала на несколько секунд раз в сутки если насос не включался за эти сутки.) В качестве шунта на датчик использовал прецизионный резистор на 1Вт.

                          • +4
                            Ходил уже этим путём. Началось всё с того, что у меня это механическое реле просто развалилось через лет 5 службы. Заклинило, насос не выключался (обычный, не погружной), перегрелся (термозащиты нет), труп, 70 евро на ремонт кишок. Собрал по подобной схеме с таким же датчиком на таком же твёрдотельном реле. Через несколько месяцев сдохло это реле, насос не выключался — труп, 70 евро на ремонт кишок. Теперь собрал по схеме твердотельное реле + пускатель. Работает чётко. Термозащиту всё ещё ленюсь сделать :))
                            • 0
                              хороший опыт, я то думал я один этот датчик запихнул, спасибо хоть есть и другие. опыт полезен, можно больше про реле? как сдохло?
                              • 0

                                Аналогично механика забилась отложениями и сдохла. А твердотельное реле рекомендуют ставить на радиатор. Греется сильно.

                                • 0
                                  Затрудняюсь скзать как именно. Я его разобрал, там залито всё компаундом, отдирать эту гадость поленился. Но прозванивалось оно насквозь.
                                  • +2
                                    Это ваше реле — на самом деле обычный оптосимистор, они крайне отрицательно относятся к реактивной нагрузке без цепей компенсации. Обычно для таких случаев когда ну очень надо параллельно симистору ставят снабберую цепочку — последовательные резистор и конденсатор, они рассчитываются исходя из полного сопротивления нагрузки, косинуса угла реактивного сдвига фазы(должен быть указан на насосе) и свойств самого симистора(допустимый предел dV/dt) обычно номиналы находятся в районе 100Ом@1Вт и 0.1мкФ@600В. Ясное дело, в ваших модулях использован самый дешёвый симистор, оттуда все беды.
                                    Но есть ньюанс — снабберная цепочка во-первых рассеивает тепло при работе симистора, во вторых создаёт утечку тока через выключенное «реле» порядка 1-2мА.
                                    А, и очень важное замечание — учтите что симистор может самопроизвольно открыться от превышения dV/dt(скорость роста напряжения на выводах) т.е. от помех в сети, и что самое интересное — от КЗ в нагрузке когда симистор выключен. т.е. в отличие от реле когда симистор выключен это не означает что можно что-то делать с нагрузкой, даже банальная коммутация цепей внутри нагрузки может привести к срабатыванию симистора и выдаче импульса напряжения до 10мс(один полупериод).
                              • 0

                                Примените тепловую модель :)

                                • +10
                                  90% разговоры за жизнь. Вам бы друзей чтоль завести, да под пивко поговорить…

                                  Единственно полезное тут алгоритм. Мог бы быть, если бы был доработан.
                                  А так… «Прикрутил китайскую фигню и запрограммировал андурину» таких статей тут полно.

                                  Ну и про реле… не верьте надписям. «безопасность» это не про них. Пример писали комментами выше. Контактор наше все.
                                  • +1
                                    >Контактор наше все.
                                    Нет, тема полностью раскрывается при гуглении «безшумный контактор» )
                                    • 0
                                      Контакторы тоже бывает подводят… Особенно, они любят «залипать»,
                                      • 0
                                        Это да, особенно дешевые марки грешат. Еще до 25А на фазу автоматические выключатели и контакторы — семь-восемь — могут работать, то выше — контакты под нагрузкой синеют и горят (слава Богу, при наличии постоянного контроля только они).
                                        • +1
                                          а Вы китайские не берите. На всех заводах успешно пашут с лохматых годов. На каждом станке стоят.
                                          • 0
                                            И ЗИПа на тех заводах много-много ящиков, да-да.
                                            Дохнуть умеют даже понтовые шнайдеровские контакторы, как практика показывает.
                                            • 0
                                              А сейчас можно взять что-то не китайское?
                                              • 0
                                                есть РОССИЯ — ОМРОН, но ростите, ценник за реле запредельное (у нас в Минске) — 30$ — я даже не против его взять, но — гарнтии какие, что там внутри начинка не такая же, как в китайском реле )))) — у нас в беларуси так моники в горизонте делают — наклейку клеяют свою и все… красота — «made in Belarus» :D — у Вас не так, я надеюсь?
                                                • 0
                                                  красота — «made in Belarus» :D — у Вас не так, я надеюсь?
                                                  Ну Samsung и Lg лепят «Сделано в России», но они как минимум собирают телевизоры полностью в России и Lg точно платы печатает тут же.
                                                  Есть DEXP, фоток завода нет и видео от туда нет. Нашел вакансию начальника цеха, зарплата 40-60 т. рублей. Ну то есть с такой зарплатой начальника цеха предположу, что там максимум телевизоры в коробки засовывают.
                                                  Да и к Китаю люди в России давно нормально относятся, понимают что все производится там. У людей к надписи «сделано в России» наоборот временами неоправданный скепсис возникает. К той техники Samsung или Lg например или автомобилям. Типа все привозят из Китая или Европы а тут просто болтики закручивают.
                                              • 0
                                                В том-то и беда, что все пять умерших за последний контакторов- отечественного производства, два из них не проработали и пары месяцев. Причем это были отнюдь не мелкие аппараты на 5А, а здоровенные «железяки», рассчитанные на номинальный ток 250А.
                                            • 0
                                              в том то и дело, что статей про замену механичского реле я не нашел, пытался искать, или плохо или мало. мне было интересно получить опыт и понять, как это будет работать в режиме реальности, а не в режиме 5 минут в обвесе с соплями )))

                                              90% за жизнь, верно — жизнь наше все, гораздо интересней прокатит такая статья, чем сухая выжимка кода с расчетом PID регулятора или выявления ускорения падения воды в системе :), а так — статья зацепила Вас, вы даже коментарий написали, мнение высказали, полезную информацию про контактор (почитаю ещё про них).

                                              друзей хватает, баня на фотке выходные не простаивает ))) — а вообще да, удаленность от города, живя в лесу, встречая каждый вечер зайцев на дороге, сильно расстаскивает :D

                                              добра и пива всем! )
                                            • +1
                                              А ссылкой на страничку продажи датчика не поделитесь?
                                              • 0
                                                • 0

                                                  Какой у него диаметр резьбы?
                                                  По фото похоже на 1/4", в описании встретил только 1/8".

                                                  • 0
                                                    у меня 1\4"
                                                    • 0
                                                      Дайте ссылку на Ваш датчик
                                                        • 0
                                                          Спасибо
                                                          • +1

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

                                                            • 0
                                                              Очевидно, использована не бронза, а что-то подешевле. али такой али…
                                                              У меня была идея на обычный стрелочный манометр наклеить диск с прорезями и 2 оптопары. При наличии прямых рук и нескольких оптопар можно кодировать угол поворота стрелки в код Грея… Но поленился.
                                                              • 0
                                                                Easy-removal-Carbon-Steel — не stainless steel, Вас не заинтриговало?
                                                                В придачу описание применения начинается с гсм материалов и в конце добавили воздух с водой (ну типа это тоже можно)
                                                                • 0
                                                                  ну так, для этого мы здесь, что бы проверить и убедится в том, что это может жить или нет :)
                                                                  • 0
                                                                    Я провел эксперимент по использованию таких датчиков давления длительностью более двух лет.
                                                                    Датчики использованы в домашней системе для повышения ситуационной осведомленности, как сейчас модно говорить :)
                                                                    Датчики измеряют давление холодной и горячей воды.
                                                                    До этих датчиков стояли механические автомобильные датчики давления масла. Менее чем за год входные отверстия зарастают ржавчиной и датчики замирают на одном показании. Я пару отказавших распилил — ржавчина заполняет все свободное пространство до мембраны.

                                                                    Электронные датчики как тут уже написали — точно так же зарастают.

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

                                                                    Я решил, что проблему можно решить, если входное отверстие датчика заполнить консистентным веществом типа густой смазки.
                                                                    Я порылся в инете и нашел такое вещество :) Это специальная силиконовая смазка. Густая, допущенная для применения в пищевой промышленности, несмываемая водой.

                                                                    Датчики, входные отверстия которых заполнены этой смазкой до упора, работают более двух лет.



                                                                    В моем случае датчики калибровались по образцовому механическому манометру. Любопытно, что датчики при начале эксплуатации были разные — требовались разные параметры прямой, аппроксимирующей выходной сигнал (зависимость выходного сигнала от давления).
                                                                    Через примерно год я заметил, что датчики «разошлись».
                                                                    Повторная калибровка дала удивительный результат — параметры датчиков стали одинаковыми.

                                                                    Если кому интересно конкретное название смазки — напишу завтра. Сейчас выходить на балкон сильно лень :)
                                                                    • 0
                                                                      А можете показать пример мембран и где их купить, а то первая страница гугла всё под заказ и по запросу.
                                                                      А то смазку как-то всётаки не хочется…
                                                                      • 0
                                                                        загуглите «манометр с разделительной мембраной» или «разделительная мембрана для датчика давления» или «мембранные разделители сред».

                                                                        Насчет где купить не знаю, однако на запрос «купить ...» и заход по ссылке с ценой www.npo-manometr.ru/products/25/152 дает цену в 3750 руб. Полагаю, что если там порыться — то и способ покупки найдется :)
                                                                      • 0
                                                                        Если кому интересно конкретное название смазки

                                                                        Очень даже интересно. Первую мысль "надежно забить Литолом" я подавил как неконструктивную.

                                                                    • 0

                                                                      Это у данного конкретного датчика так. В том, что я заказывал была указана нержавейка.

                                                                      • 0
                                                                        да, заметил в описании, идет защита от ржавения, но не нержавейка основа. но нашел замену www.aliexpress.com/item/1PC-New-Arrival-Stylish-Top-Selling-300-psi-Stainless-Steel-Oil-pressure-Sensor-for-Oil-Fuel/32818589938.html

                                                                        надо будет проверить его :)
                                                                        • 0

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

                                                                          • 0
                                                                            кстате, как они у вас оржавели, если были в воде? нужен кислород для процесса корозии. вроде как трубы стальные внутри ничем не покрыты и ржавеют только спустя надцать лет…
                                                                            • 0

                                                                              У меня подозрение, что как-то повлияло возможное наличие напряжения (-5V) от ардуины на корпусе датчика и наличие потенциала в самой воде, т.к. от водопроводных труб иногда током дергает. Сниму датчик, покажу фото. Местами его корпус съеден. Может быть, окалина, наросшая на отверстии — это частицы самого корпуса датчика, которые не уплыли далеко.
                                                                              Не разбираюсь в этом вопросе настолько, чтобы дать исчерпывающий ответ.

                                                                              • 0
                                                                                Электролизом попахивает. спасибо за информацию — скиньте фото как получится.
                                                                              • 0
                                                                                Если это вода из скважины (а иначе зачем насос?), то там может быть железо само по себе. У меня, похоже, ржавчина даже на внутренней поверхности ПНД труб есть…
                                                                            • 0
                                                                              300psi ~ 20bar для водопровода не многовато?
                                                                              т.к водопровод 2-6 максимум…
                                                                              • 0
                                                                                это я так — нашел из нержавейки. конечно много ;)
                                                                • 0
                                                                  1/8" но есть
                                                                  ebay.to/2BNunkv
                                                                  1/8" на 1/2"
                                                            • 0
                                                              Я правильно понял, что там читается значение АЦП и из него сразу (точнее после проверки корректности) считается давление? А как же усредение, фильтрация и т.п. Я только что дописал прогу для управления твердотельным котлом, плата на ATMega8, так вот, там значения АЦП (даже со спец подготовкой типа режима уменьшения шума при конвертации) скачут на 2 младшие единицы. А при хорошей фильтрации значимыми получается даже «десятые» от этих единиц. Какую точность без этого всего получаете?

                                                              void ADCGetADCTemprCZ2(void)
                                                              {
                                                              uint tmpData;
                                                              
                                                              ADMUX = (1<<REFS0)|(1<<MUX1); //
                                                              __delay_cycles(50);
                                                              
                                                              /*MCUCR |= (1<<SE)|(1<<SM0);
                                                              __sleep();*/
                                                              
                                                              ADCSR |= (1<<ADSC); // Start ADC
                                                              while(!(ADCSR & (1<<ADIF))) {}; // Weit ADC complite flag
                                                              
                                                              tmpData = ADCL;
                                                              tmpData |= (ADCH << 8);
                                                              
                                                              if (CheckADCDataCZ2(tmpData) == true) tmpData -= MIN_TEMPR_ADC;
                                                              else return; // выходим из функции не применяя "плохие значения"
                                                              
                                                              if (prgState.cz2ApplyFilter)
                                                              {
                                                                ADCTemprCZ2 = Filter(ADCTemprCZ2, tmpData);
                                                              }
                                                              else
                                                              {
                                                                ADCTemprCZ2 = (tmpData - 1) << 8;
                                                                prgState.cz2ApplyFilter = true;
                                                              }
                                                              
                                                              }
                                                              
                                                              //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                              //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                              
                                                              uint Filter(uint inOldData, uchar inNewData)
                                                              {
                                                              uint deltaOrOut, tmpData;
                                                              uint inNewDataLong = inNewData << 8;
                                                              
                                                              if (inOldData > inNewDataLong)
                                                              {
                                                                deltaOrOut = inOldData - inNewDataLong;
                                                                
                                                                tmpData = deltaOrOut >> 6;
                                                                deltaOrOut = inOldData - tmpData;
                                                              }
                                                              else
                                                              {
                                                                deltaOrOut = inNewDataLong - inOldData;
                                                                
                                                                tmpData = deltaOrOut >> 6;
                                                                deltaOrOut = inOldData + tmpData;
                                                              }
                                                              
                                                              return deltaOrOut;
                                                              }
                                                              
                                                              //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                              //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                              
                                                              schar ADCToTempr(uint adcData)
                                                              {
                                                              
                                                              ulong tmpData;
                                                              schar out;
                                                              
                                                              tmpData = (adcData - (settings.temprMinus10Offset << 8));
                                                              tmpData = tmpData * settings.temprKoefMult;
                                                              tmpData = tmpData >> 16;
                                                              
                                                              out = tmpData - TEMPR_MINUS10_CONST;
                                                              return out;
                                                              }
                                                              
                                                              
                                                              • 0
                                                                какой то добрый человек уже закинул пул реквест на мой код и добавил медиану, спасибоему огромное. фактически в тестах показало что нет скачков, но иногда бвает 0.01bar может шалить, но в рамках интервала 1.6-3 это никак не влияет на работу.

                                                                медиану добавил в код.
                                                              • +2

                                                                Может, невнимательно читал, но сколько времени данная конструкция у вас уже эксплуатируется?

                                                                • 0
                                                                  тестово начал эксплуатировать неделю, пока полет нормальный — обязательно отпишусь здесь в коментариях через месяц \ год — что и как идет. спасибо
                                                                  • 0

                                                                    Пожалуйста, не поленитеь отписаться через полгода-год.
                                                                    Ставил себе точно такие датчики — дохли через 3-4 месяца. При демонтаже были все в ржавчине (забор воды из колодца, трубы — полипропилен, больше следов накопления ржавчины нигде нет).
                                                                    Плюнул, вернулся к механике.


                                                                    К слову, при подыхании показания датчика не падают к нулю, а становятся рандомными.

                                                                    • 0
                                                                      Приветствую, обязательно отпишусь, самому интересно. У меня скважина 56 метров, монометр за 4 года не сгнил, внутри чистый (обратите внимание, он в магистрали как и датчик) — трубы пластик вводные. У меня так же спортирвный интерес.

                                                                      1. хотелось применить этот датчик не на соплях в макетке, а рально в девайсине
                                                                      2. применить сделаный девайс в домашней системе и проверить как оно, твое устройство будет реально эксплуатироваться
                                                                      3. проверить живучесть таких устройств с АЛИ, которые визуально выглядят хорошо
                                                                      • 0
                                                                        Посмотрите продукцию Pumpela (Санкт-Петербург) — очень неплохие изделия, еще из с защитой от ХХ без включения на проток!
                                                                        • +1
                                                                          Ставьте датчик не в контур водоснабжения, а через мембрану. Датчик-емкость разделенная мембраной-контур водоснабжения. В ту часть разделительной емкости, куда вкручен датчик, залита нейтральная (по отношению к материалу датчика) и безопасная (по отношению к человеку) жидкость.

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

                                                                            Вот за эту идею — спасибище!

                                                                            • 0
                                                                              Только не забудьте откалиброваться, воздух в ноль не падает.
                                                                              Плюс еще переходник поискать.
                                                                    • 0
                                                                      Не по предмету:
                                                                      Скрытый текст
                                                                      КМК, это крысёныш был, и это плохо.
                                                                      • 0
                                                                        у Вас хорошие познания, но вроде как мышка, не крыса. у нас тут крысы не водятся, а вот полевок хватает… летом заскочила, гоняюсь за ней все, открыт гараж был.
                                                                    • 0
                                                                      Скажите, мышь вы ловили с помощью Arduino, или там уже STM32 надо брать?
                                                                      • 0
                                                                        :) — ардуинка, вечером решил за 15 минут собрать из того что было, ради фана. заодно проверить как срабатывает линза Френеля на мышке :D
                                                                      • 0
                                                                        Для таких устройств желательно использовать автоматический RESET в случае зависания. А то если контроллер зависнет в момент включения насоса, могут возникнуть потом некоторые траты за электричество и всякое такое.
                                                                        Микроконтроллеры ATmega имеют встроенный механизм WatchDog Timer. В Ардуино он не прописан, но добрые люди сделали поддержку этой функции
                                                                        www.cyber-place.ru/showthread.php?t=550&page=13
                                                                        • 0
                                                                          Там механическое реле осталось для таких случаев.
                                                                          • 0
                                                                            механика на случай краха электроники, которая в тестовом сейчас работает. тоесть прода перекинуть всегда можно обратно
                                                                            продумывал механическое вклинить паралельно\последовательно — смысла болшого нет, тупики все равно получаются в случае выхода твердотельного
                                                                        • 0
                                                                          А не было мысли поставить второй датчик после магистрального фильтра, чтобы этот самый фильтр менять не визуальным контролем, а по достижению порогового значения дельты показаний двух датчиков?
                                                                          • 0
                                                                            меняю раз в 3-5 месяца(ев) и как то ОК — не напрягает ;)
                                                                            • 0
                                                                              У меня колодец и потребность выше — в среднем раз в месяц замена фильтра происходит. Да и хочется оперировать более объективным критерием нежели визуальное загрязнение и уже по факту ослабевший напор воды из под крана. Пока не встретил готового решения.
                                                                              • 0
                                                                                если найдете решение — буду рад услышать его, возможно поделитесь статьей. спасибо
                                                                                • 0
                                                                                  Замена по календарю — надежно и бюджетно ;)
                                                                                  Можно наколхозить 2 датчика давления (на входе и на выходе фильтра), измерять разницу давлений (можно даже без ардуины, хватит и операционного усилителя) и зажигать светодиод при превышении.
                                                                                  В вашем случае, думаю, надо 2 фильтра — грубой очистки и тонкой очистки и 3 датчика.
                                                                            • 0
                                                                              защита от сухого хода предусмотрена?
                                                                              • 0
                                                                                пока продумываю ка интегрировать в текущий алгоритм с проверкой давления после включения реле. по факту есть тепловое реле в автоматике… но можно добавить и со своей стороны.
                                                                                • –1
                                                                                  Может уж тогда и плавный пуск вкорячить, чтобы не было бросков тока в момент включения (реализуется программно либо на U2008B). Заменить оптореле связкой MOC + симистор. Шунтировать симистор относительно слаботочным реле, чтобы уменьшить безполезный нагрев…
                                                                                  много чего можно добавить
                                                                                  • +1
                                                                                    Плавный пуск асинхронного двигателя выглядит немного сложнее ;) Дешевле купить еще один насос.
                                                                                    • –1
                                                                                      А вот производители электроинструмента не видят в этом ничего сложного
                                                                                      • 0
                                                                                        Ссылку на электроинструмент с асинхронным двигателем, плавным пуском и ценой в студию ;)
                                                                                        • 0
                                                                                          В этом инструменте универсальный коллекторный двигатель, а не асинхронный двигатель. Первым можно управлять напряжением, вторым частотой. Ставить/делать частотный преобразователь в эту конструкцию, весьма не бюджетно выйдет.
                                                                                          • +1
                                                                                            Вы правы, но только наполовину.
                                                                                            Асинхронным двигателем нужно управлять по закону U/F, т.е. с изменением частоты должно меняться и напряжение. Однако, не вижу причин по которым двигатель не мог бы стартовать с пониженного напряжения.
                                                                                            • 0
                                                                                              не вижу причин по которым двигатель не мог бы стартовать с пониженного напряжения

                                                                                              Стартовый ток. Ну не умеет асинхронник крутиться медленно.
                                                                                              • +1

                                                                                                Тем не менее, традиционные устройства плавного пуска — это как раз тиристорные регуляторы напряжения. Поэтому и стоимость по сравнению с частоьниками меньшая.

                                                                                                • 0
                                                                                                  Они традиционны для универсальных двигателей, не для асинхронных.
                                                                                                  • 0
                                                                                                    Ну здрасьте. Например GE Astat Plus — как раз для асинхронников и как раз симисторный.
                                                                                                    • 0
                                                                                                      Загуглил.
                                                                                                      Устройства плавного пуска General Electric серии Astat Plus — полупроводниковые устройства плавного пуска для трехфазных двигателей переменного тока


                                                                                                      Трехфазный двигатель от однофазного (с здоровым таким фазосдвигающим конденсатором) таки отличается. Реактивная нагрузка же. И что-то мне кажется, что этот гаджет будет стоить как насос вместе со скважиной.
                                                                                                      • 0
                                                                                                        А ну с однофазными конечно сложнее. Я даже однофазного (на выходе) частотника прямо с ходу не назову.
                                                                                              • 0
                                                                                                И что это даст, кроме вероятности того, что он не стартует вовсе?
                                                                                      • 0
                                                                                        можно добавить дачик протока
                                                                                        ebay.to/2y7wGgc
                                                                                        заодно по нему можно будет считать потребление и косвенно загрязнение фильтра.
                                                                                    • 0
                                                                                      я себе поставил вот такую управлялку: fiting.com.ua/p362188900-rele-davleniya-zaschitoj.html
                                                                                      • +2
                                                                                        За изделие и прямые руки, безусловно, плюс. Но если исключить из текста все приветствия, поздравления, хвалебные слова самому себе и прочие оправдания, то останется примерно 10 строчек. Из которых половина о том как можно умножить и разделит на 10 чтобы хранить все в памяти в человекопонятном виде вместо того, чтобы хранить значение от 0 до 255 (как на выходе с АЦП) и преобразовывать в человекопонятное при выводе на экран.
                                                                                        • +2
                                                                                          Задача надуманная. Ладно бы плавный пуск насоса организовали… А так это замена 1 типового модуля на 4 редких (датчик-источник питания-контроллер-индикатор; куда бежать, если в пятницу вечером датчик с алиэкспресса сломается?). Механическое реле (при правильной регулировке) просто работает годами. Если напрягают щелчки — можно завернуть в шумоподавитель (хотя, раз оно осталось в системе и продолжает щелкать — думаю, это не повредит).
                                                                                          Гидроаккумулятор должен быть литров на 100, раз от него запитаны еще и соседи.
                                                                                          Давление воздуха в нем (без воды!) должно быть 1.5..1.7 атм.
                                                                                          Нижнее давление в в автоматике должно быть на 0.2-0.3 атм выше чем давление воздуха — тогда не будет провалов давления при пуске насоса.
                                                                                          Датчик давления (или реле) желательно монтировать поближе к гидроаккумулятору.
                                                                                          • 0
                                                                                            Хороший коммент.
                                                                                            Не надо сочинять новый механизм там, где достаточно грамотно настроить имеющийся.
                                                                                          • +2
                                                                                            Не буду спрашивать, нафига там вообще float, а спрошу, в чем проблема с записью его в EEPROM?
                                                                                            • 0
                                                                                              www.arduino.cc/en/Reference/EEPROMWrite
                                                                                              value: the value to write, from 0 to 255 (byte)

                                                                                              возможно профи ардуинщики меня тыкнут куда то :) в другой мануал

                                                                                              float чем вам не нравится? он применяется в давлении так как цена изменения давления идет 0.01 — мне так захотелось учитывать.

                                                                                              аналог выдет от 0 до 1023 — тоесть от 0 до 5V
                                                                                              этот сенсор выдает от 0.5-4.5В

                                                                                              так как 0-1023 это больше чем byte (uint16_t), а выводить как вы визуально будет еданные без float?

                                                                                              Если есть конкретнеы предложение, буду рад выслушать, спасибо :)
                                                                                              • 0
                                                                                                byte(int/uint8_t) — это как раз и значения от 0 до 255. А uint16_t — это значения от 0 до 65к, 1024 туда поместятся. А еще проще умножать сразу на коэффициент пересчета(какой, там, 11?) и хранить значение в миллибарах каких-нибудь. Т.е. давление у вас 3бар, АЦП выдает 274, вы умножаете на 11, получаете 3014 и его храните. А если надо вывести на экран/в лог — вычисляете сначала целую часть, деля на 1000, а потом дробную, беря остаток от деления. Все сравнения внутри программы ведете в миллибарах.
                                                                                                Таким образом, избавляетесь от float, ускоряя операции, и экономите на памяти, храня два байта вместо 4, да еще и не теряя в точности.

                                                                                                А по поводу EEPROM, что вам мешает записать эти два байта, составляющие uint16_t(или 4 в случае float) в разные ячейки?
                                                                                                • 0
                                                                                                  спасибо за подход, рассмотрим его в рамках оптимизации кода.

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

                                                                                                  касательно памяти — не вижу проблем сторить большие даные разбивая на адресные пространства.

                                                                                                  спасибо за время
                                                                                                  • 0
                                                                                                    Что-то типа.
                                                                                                    #define EEPROM_OFFSET_VALUE = 0x10
                                                                                                    #define ADC_MBAR_FACTOR = 11
                                                                                                    
                                                                                                    typedef union u8_u16_t
                                                                                                    {
                                                                                                       uint16_t u16;
                                                                                                       uint8_t u8[2];
                                                                                                    } u8_u16_t;
                                                                                                    
                                                                                                    uint16_t read_value()
                                                                                                    {
                                                                                                       u8_u16_t value;
                                                                                                       value.u8[0] = EEPROM.read(EEPROM_OFFSET_VALUE+0);
                                                                                                       value.u8[1] = EEPROM.read(EEPROM_OFFSET_VALUE+1);
                                                                                                       return value.u16;
                                                                                                    }
                                                                                                    
                                                                                                    void write_value(uint16_t value_u16)
                                                                                                    {
                                                                                                       u8_u16_t value;
                                                                                                       value.u16 = value_u16;
                                                                                                       EEPROM.write(EEPROM_OFFSET_VALUE+0, value.u8[0]);
                                                                                                       EEPROM.write(EEPROM_OFFSET_VALUE+1, value.u8[1]);
                                                                                                    } 
                                                                                                    
                                                                                                    void measure()
                                                                                                    {
                                                                                                       uint16_t raw_value = ADC.read(1);
                                                                                                       write_value(raw_value*ADC_MBAR_FACTOR);
                                                                                                    }
                                                                                                    
                                                                                                    void print()
                                                                                                    {
                                                                                                       uint16_t valuembar = read_value();
                                                                                                       printf("Value: %u.%u\n", valuembar / 1000, valuembar % 1000);
                                                                                                    }
                                                                                                    
                                                                                                    

                                                                                                    • 0
                                                                                                      Про формат данных хочу вставить пять копеек «на гипотетически возможное будущее»:

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

                                                                                                      А вот как только возникнет задача передачи данных на другое устройство (например, на комп для мониторинга), то лучше сразу предусмотреть в протоколе передачи некую стандартизацию формата — и хорошо бы привязать или к какому-то уже существующему стандарту, или просто заложить «человеко-понятную» форму (самый простой пример — ASCII-протокол через UART, который можно посмотреть тупо в терминале).

                                                                                                      Другими словами, передавать в канал «сырой» замер АЦП чревато следующим сценарием: делаем мы следующую версию нашего устройства, с другой разрядностью АЦП (12 вместо 10 или наоборот), а того веселее (и вероятнее) — если меняются параметры цепи между датчиком и АЦП (делитель или усилитель), или сам датчик (с другой характеристикой) — и привет.

                                                                                                      Можно конечно, и принимающее устройство перешить на «понимание» этого нового формата, но это годится только в случае единичной поделки для себя. А вот когда делаешь такие штуки на сторону, и устройства гуляют не комплектом, а по отдельности, тут вопросы совместимости и появляются (кстати, я на эти грабли уже наступал, почему и делюсь соображениями).

                                                                                                      Возможный способ — в новой версии сделать перед передачей в канал конвертацию, имитирующую старый формат — по сути получается, что мы фиксируем тот первый вариант «сырого АЦП» в качестве стандарта. Но «еще один самопальный стандарт» — это всё-таки фу. Через несколько итераций может получиться "эффект лошадиной задницы".

                                                                                                      В общем, повторюсь — всё это не актуально в случае единичных поделок «для себя». Просто хорошая привычка, могущая пригодиться при дальнейшем развитии. А оно ведь как бывает — сделал для себя, потом зашёл сосед, увидел — и попросил и ему такое сделать (за вознаграждение или просто в рамках добрососедских отношений — это уже по ситуации), потом еще знакомым рассказал — и пошла писать губерния.
                                                                                              • 0
                                                                                                было решено с моей стороны так: зная, что число x.x0 это давление float типа, его можно легко конвертировать в byte если умножить на 10 и записать в память


                                                                                                Поздравляю! Вы «изобрели» формат записи с фиксированной точкой. ;)

                                                                                                А вообще вы молодец. Спасибо. Интересно. Люблю малую автоматизацию.
                                                                                                • 0
                                                                                                  Спасибо, «изобрели» формат записил — это хорошая шутка, посмеялся ))))
                                                                                                  Как ктото писал — «нафига переводить, и в чем трабла записи в EEPPROM float типа?» — да дело в том что EEPPROM сейвит по мануалу 0-255 byte тип или как любят писать: uint8_t тип.
                                                                                                  • 0
                                                                                                    Вообще это просто минимальная порция данных для записи, никто не запрещает хоть 16 ячеек по очереди записывать! А float в контроллере представлен 4-мя такими байтами, если мне память не изменяет.
                                                                                                    • 0
                                                                                                      да все верно — я хотел быстро записать в одну ячейку без разбивок.
                                                                                                      • 0
                                                                                                        Там даже разбивать ничего не надо. Пишите подряд и всё. Все I2C EEPROM имеют режим последовательной страничной записи. Один раз посылаем адрес микросхемы и бит записи, потом адрес стартовой ячейки, а потом данные без стопа. Стоп — только после последнего байта. Адрес инкрементируется в микросхеме сам.

                                                                                                        Ну и раз уж у вас Ардуина с её библиотеками, то там это делается через EEPROM.put():
                                                                                                        www.arduino.cc/en/Tutorial/EEPROMPut
                                                                                                        • 0
                                                                                                          а там точно епром именно I2C используется, а не внутренний AVR- микроконтроллера?
                                                                                                          • 0
                                                                                                            Может и внутренний. Не имел дела с ардуинами, честно говоря. Но всё равно в API есть функция EEPROM.put(), которая любые переменные сохраняет.
                                                                                                            • 0
                                                                                                              я к тому вёл, что если встроенный — то не в каждом AVR есть страничный режим, вот в AT90CANxxx — нет.
                                                                                                              Впрочем, автоинкремент адреса байтов может быть реализован в API и программно. Тем более, что пользователь может указать такой начальный адрес, что попадёт на границу страниц.
                                                                                                    • 0
                                                                                                      Ну и что, что он «сейвит» байты. Это как-то до сих пор никому не мешало хранить там хоть 16, хоть 32, хоть 64 бита, хоть строки любой длины (лишь бы влезло). Процедура записи 4 байт мало отличается от таковой для 1 байта.

                                                                                                      Кстати, вот совершенно справедливое было высказано тут предложение хранить данные в EEPROM в «сыром» виде, как выдаёт АЦП. И ничего отбрасывать или округлять не надо было бы. А всей этой арифметикой заниматься уже непосредственно перед выводом на экран.
                                                                                                      • 0
                                                                                                        в EEPPROM не надо хранить данные АЦП, нет никакого смысла, в EEPPROM сохраняется нижнее и высокое давление, в случае если изменялись настройки от дефолтных и блок выключают и включают.
                                                                                                        • 0
                                                                                                          Более того, если сдвинете на 2 разряда то, что вычитали из АЦП — можно спокойно сохранять 1 байт, разницы никто не увидит. Вряд ли у этих датчиков точность в 0.1%, а даже для 1% (что тоже вряд ли) 255 уровней достаточно.
                                                                                                          • 0
                                                                                                            Ну так а сравниваете-то вы это сохранённое значение с чем? Правильно, с показаниями АЦП. В итоге, при каждом сравнении приходится переводить данные АЦП в человекочитаемый формат, сохранённый в EEPROM. А хранили бы в формате, выдаваемом АЦП, сэкономили бы на этой конверсии. В вашем случае, правда, это не критично, но в других системах может быть и важно.

                                                                                                            Ну и верно тут ранее заметили, что эти 0-1023 легко можно поделить на 4 отбрасыванием двух младших битов и никто не заметит разницы.
                                                                                                    • 0
                                                                                                      Цифровое реле от $20
                                                                                                      • 0
                                                                                                        это реле из семейства реле, которые работают с насосами напрямую и скорее всего для насосов колодцев. у меня насос со своим пускатель насоса (блок) который защищает реле давления от высоких токов…
                                                                                                        • 0
                                                                                                          частный случай.
                                                                                                          в большинстве случаев этой релюхи за глаза.
                                                                                                          можно даже пневмореле использовать, просто сделать вертикальный глухой отвод и втулить датчик вверху.
                                                                                                          тоже цена около $20
                                                                                                      • +1
                                                                                                        Помимо прочего, очень не рекомендую когда-либо писать в коде вот так:

                                                                                                        P_c = ((11.5 * Vout + 2.25) / 4.5) + Pcorrection;


                                                                                                        Тут сразу две проблемы:
                                                                                                        1. Через пару лет, когда полезете разбираться в коде, будете долго вспоминать, что это за циферки такие и почему они именно такие
                                                                                                        2. Если эту формулу вы используете более, чем в 1 месте, то потом есть риск поменять её в одном месте и забыть поменять в другом.


                                                                                                        Решение состоит в том, чтобы никогда не использовать «магические числа», а заменять их макросами с понятными именами (и комментами в месте определения макросов). Ну а если формула используется в коде несколько раз, то лучше и её всю заменить на макро или инлайн функцию.
                                                                                                        • 0

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

                                                                                                        • 0
                                                                                                          Я реализовывал подобную систему у себя на даче, только с некоторыми отличиями обусловленными тем что скважина у меня низко-дебетовая.

                                                                                                          Схема работы такова:
                                                                                                          — Насос через фильтр грубой очистки закачивает из скважины воду в 300 литровый бак на чердаке дома.
                                                                                                          — На выходе из бака стоит фильтр тонкой очистки воды и повышающий насос с датчиком расхода.
                                                                                                          — При открытии крана вода сначала самотеком идет, но почти моментально срабатывает датчик расхода и начинает давить повышающий насос.

                                                                                                          Плюс в том что при отстутствии электричества водоснабжение в доме не пропадает, потому-что вода самотеком, хоть и с небольшим напором, течет из бака к потребителям. Гравитация рулит :)

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

                                                                                                          Эта ардуинка подключена через I2C шину к stm-ке которая обслуживает пульт управления и датчик давления в баке (для измерения уровня воды через давление). Стм-ка посылает команды на включение насоса ардуинке если уровень воды опускается ниже 10%.
                                                                                                          • 0

                                                                                                            Было бы неплохо прикрутить импульсный счётчик воды. Для измерения расхода и как датчик сухого хода. Правда в этом случае его нужно ставить до насоса. Ещё полезная функция защита от протечек. При очень медленном снижении давления в течении определенного периода времени включается закрывающий клапан.

                                                                                                            • 0
                                                                                                              Разрешите поделиться опытом. Так случилось, что живу в Крыму и несколько лет занимаюсь этой темой (насосы, скважины).

                                                                                                              Итак, реле давления бавают двух типов — механические и электронные. Есть еще электронные регуляторы давления с функцией частотного преобразования, но это редкость в наших краях да и цена кусается.

                                                                                                              1. Механика. Простенькая конструкция с двумя пружинами и гайками, позволяющими настроить давление включения и отключения (на самом деле настраивается P и ΔP но по сути это одно и то же). Обязательно наличие гидроаккумулятора. Есть версии с защитой от сухого хода, но на практике они ненадежны.

                                                                                                              2. Электроника. Гидроаккумулятор не нужен. Как правило устройство содержит микропроцессор и 2 датчика — датчик давления и датчик протока воды. Прошу заметить — оба датчика механические а сигнал к микропроцессору обычно поступает через герконы. Присутствует защита от сухого хода, в продвинутых схемах присутствует защита мотора по току.

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

                                                                                                              На практике я много раз наблюдал смерть насосов с электронным реле давления и ни разу (НИ РАЗУ!) с механическим. В чем проблема? Да в том, что вода в Крыму грязная. Если из скважины, то с песком, а если из магистрали, то жесткость воды удивляет — трубы «зарастают» на глазах. Что происходит с электроникой? Вечером вы приходите домой и обнаруживаете, что мотор все время включен. Почему? Да просто засорился датчик протока воды (или датчик давления) и микроконтроллер думает, что открыт кран и тупо включает мотор. Мотор работает (краны закрыты), вода нагревается до кипятка, гидравлическая часть плавится. А ее стоимость — половина нового мотора. В случае засорения механического реле все происходит наборот — мотор не включается. Улавливаете разницу?

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

                                                                                                              А теперь теория. Самое слабое место в механическом реле давления — гидроаккумулятор. Именно он плохо переносит морозы, именно он требует периодической проверки давления и именно в нем обычно рвется «груша». Поэтому легко понять тех, кто предпочитает электронные реле. Но давайте рассмотрим ситуацию с научной точки зрения. Что происходит, когда, например вы решили побриться и открыли кран тоненькой струйкой?

                                                                                                              1. Механика. Да ничего такого, штатный режим работы. При падении давления, например до 1,8 атмосфер насос включается, закачивает воду в гидроаккумулятор и при достижении 3 атмосфер отключается. (Параметры 1,8 и 3 — регулируются).

                                                                                                              2. Электроника. Мотор все время включен. Давление в системе зависит от модели мотора и может быть как 3 атмосферы (обычно), а может быть и 4...5 атмосфер. Суть в том, что электроника видит, что вода течет и не отключает мотор.

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

                                                                                                              Заключение. Электронное реле — это механика + электроника, а механическое — это только механика. Как вы думаете, что надежнее? К тому-же электронное реле постоянно эксплуатирует мотор в неблагоприятном для него режиме да и статистика не в пользу электроники… Выводы делайте сами.

                                                                                                              p.s. Состоятельным клиентам я ставлю механику и электронику в паре — получается чудесный тандем. Электроника защищает от сухого хода и повышенного тока (это то, чего не хватает механике). А механика всегда отключает мотор (и электронику) при достижении 3 атмосфер — это действительно чудесный тандем. В случае прорыва груши электроника продолжает работать и имеется возможность ремонта гидроаккумулятора без отключения водоснабжения.

                                                                                                              p.p.s. Надежность — это дублирование. Это правило всегда используется в связи и почему-то не используется в черных ящиках самолетов, ну да бог с ними. То бишь два китайских датчика давления — это уже очень надежно, а + механическое реле — почти совершенно. Потому что микропроцессоры иногда зависают, а порты выгорают. Простите, за многословность — это мой первый комментарий на Гиктаймсе :-)
                                                                                                              • 0
                                                                                                                Если вместо водяной схемы нарисовать электрическую, где вместо насоса — источник тока, вместо гидроаккумулятора — конденсатор, вместо труб — провода (с сопротивлением и индуктивностью), вместо крана — резистор — все просто и понятно.

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

                                                                                                                огромное всем спасибо за разносторонние посылы и информацию, спасибо!

                                                                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.