DimKasM
New member
Приветствую!
Делаю свой первый проект автоматизации полива. Взял за основу Wemos D1 mini c ESP8266 к ней по I2C подключены разные датчики, экран и MCP23017 для управления реле. Помимо этого необходимо работать с прерываниями, для этого на входа GPIO (12,13,14) будет поступать сигнал от расходомера от Elecrow: Датчик расхода воды, диаметр 1/2 дюйма от Elecrow в Киеве и Украине. В качестве питания, я использую 20А блок питания для питания светодиодной ленты, который дает 12В. Именно это напряжения переключается релюшками, плюс это напряжение подается на DC преобразователь DC-DC понижающий конвертер 3А в Киеве и Украине который делает из него 5В для питания wemos и остальных его друзей.
В качестве прошивки я пока решил использовать замечательный вариант WiFi-IoT Firmware Builder :: Main для того чтобы быстро создать прототип.
Вообщем проект собранный на беспаечной макетной плате работал без проблем, но вот когда я уже начал размещать в едином блоке (точнее блоков два, один с питанием, второй же сам контроллер), то обнаружил проблему: на входа GPIO для датчиков расхода приходит много помех. Причем некоторые из них я почему-то даже не вижу осцилогрофом. Проблема проявляется в том, что счетчик импульсов которые поступают от датчик расхода ( подтянутый к 5В через 10кОм) начинает сам порой непроизвольно считать (используется работа с прерываниями). Причем особенно много идет ложных импульсов когда одна из реле подает питание на маленький насос Мембранний насос помпа в Киеве и Украине.
Я пробовал решить проблему методом исключений, что я уже делал:
1) Менял блоки питания, брал два разный БП от 220В на 12В и 5В, питал от аккумулятора и т.п. не помогает...
2) Отключал реле и запитывал насос от отдельного БП 12В, не помогает...
3) Отключал датчик расхода, подтягивал 3,3В на один из выходов GPIO через 4,7кОм, не помогает...
4) Отводил подальше кабель питания насоса, это помогает!
5) Выпаивал нафиг вообще проводок с платы GPIO, это помогает!
Что меня смущает, даже самый маленький проводок (10см) + 4.7кОм к +3.3В уже представляют из себя антенну которая замечательно ловит импульсы от кабеля питающего 12в насос (маленький насосик точнее) и прошивка начинает считать какие-то фиктивные импульсы. Причем, вот что меня совсем вводит в ступор, если я подключаю осциллограф к этому входу GPIO, то я не вижу никаких колебаний! То есть стабильные 3.3.В! Вот как так может быть? Два дня бился... понимаю, что кабель насоса создает наводку, но почему я ее не вижу? почему эта наводка такая сильная? или это вход GPIO такой чувствительный?
Как бороться с этим? Я так понимаю что нужен фильтр от помех. Но какой лучше: RC-фильтр, или оптрон? как близко он должен быть расположен ко входу GPIO? Как Вы защищаетесь от помех? Заранее Спасибо за помощь!
Делаю свой первый проект автоматизации полива. Взял за основу Wemos D1 mini c ESP8266 к ней по I2C подключены разные датчики, экран и MCP23017 для управления реле. Помимо этого необходимо работать с прерываниями, для этого на входа GPIO (12,13,14) будет поступать сигнал от расходомера от Elecrow: Датчик расхода воды, диаметр 1/2 дюйма от Elecrow в Киеве и Украине. В качестве питания, я использую 20А блок питания для питания светодиодной ленты, который дает 12В. Именно это напряжения переключается релюшками, плюс это напряжение подается на DC преобразователь DC-DC понижающий конвертер 3А в Киеве и Украине который делает из него 5В для питания wemos и остальных его друзей.
В качестве прошивки я пока решил использовать замечательный вариант WiFi-IoT Firmware Builder :: Main для того чтобы быстро создать прототип.
Вообщем проект собранный на беспаечной макетной плате работал без проблем, но вот когда я уже начал размещать в едином блоке (точнее блоков два, один с питанием, второй же сам контроллер), то обнаружил проблему: на входа GPIO для датчиков расхода приходит много помех. Причем некоторые из них я почему-то даже не вижу осцилогрофом. Проблема проявляется в том, что счетчик импульсов которые поступают от датчик расхода ( подтянутый к 5В через 10кОм) начинает сам порой непроизвольно считать (используется работа с прерываниями). Причем особенно много идет ложных импульсов когда одна из реле подает питание на маленький насос Мембранний насос помпа в Киеве и Украине.
Я пробовал решить проблему методом исключений, что я уже делал:
1) Менял блоки питания, брал два разный БП от 220В на 12В и 5В, питал от аккумулятора и т.п. не помогает...
2) Отключал реле и запитывал насос от отдельного БП 12В, не помогает...
3) Отключал датчик расхода, подтягивал 3,3В на один из выходов GPIO через 4,7кОм, не помогает...
4) Отводил подальше кабель питания насоса, это помогает!
5) Выпаивал нафиг вообще проводок с платы GPIO, это помогает!
Что меня смущает, даже самый маленький проводок (10см) + 4.7кОм к +3.3В уже представляют из себя антенну которая замечательно ловит импульсы от кабеля питающего 12в насос (маленький насосик точнее) и прошивка начинает считать какие-то фиктивные импульсы. Причем, вот что меня совсем вводит в ступор, если я подключаю осциллограф к этому входу GPIO, то я не вижу никаких колебаний! То есть стабильные 3.3.В! Вот как так может быть? Два дня бился... понимаю, что кабель насоса создает наводку, но почему я ее не вижу? почему эта наводка такая сильная? или это вход GPIO такой чувствительный?
Как бороться с этим? Я так понимаю что нужен фильтр от помех. Но какой лучше: RC-фильтр, или оптрон? как близко он должен быть расположен ко входу GPIO? Как Вы защищаетесь от помех? Заранее Спасибо за помощь!