• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Как бороться с помехами на входе GPIO?

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? Как Вы защищаетесь от помех? Заранее Спасибо за помощь!

photo_2018-07-16_11-33-26.jpg
 

=AK=

New member
Причем, вот что меня совсем вводит в ступор, если я подключаю осциллограф к этому входу GPIO, то я не вижу никаких колебаний! То есть стабильные 3.3.В! Вот как так может быть? Два дня бился... понимаю, что кабель насоса создает наводку, но почему я ее не вижу? почему эта наводка такая сильная? или это вход GPIO такой чувствительный?

Как бороться с этим? Я так понимаю что нужен фильтр от помех. Но какой лучше: RC-фильтр, или оптрон? как близко он должен быть расположен ко входу GPIO? Как Вы защищаетесь от помех?
Читайте статью, там все сказано: и почему вы не видите помех осциллографом, и как защищаться. Но материал довольно "сухой", начинающим дается с трудом. К тому же он разрушает некоторые устоявшиеся мифы, типа что оптроны якобы являются панацеей от помех.

Вот, к примеру, у вас в модуле реле стоят оптроны, которые от помех никого и никак не защищают. А схема этого модуля и его разводка сделаны так глупо, что он сам является мощным источником помех. Использованные там реле имеют большую проходную емкость, около 10 пФ. Сетевые помехи через эту емкость свободно проходят на низковольтную часть и через входные терминалы модуля реле уходят в ваш клубок проводов. Далее за счет емкостных связей пoмехи переходят на другие провода и вызывают перечисленные вами проблемы.

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

=AK=

New member
Если сильные наводки на дорожку/провод, то рекомендуют чуть более комплексно прикрыть ногу.

Protecting Inputs in Digital Electronics
Protecting Inputs in Digital Electronics | DigiKey
Несколько вещей в этой схеме могут быть улучшены.

1) Входной резистор 10 Ом слишком мал, чтобы защитить схему от мощных помех. Его надо увеличить хотя бы до 1к, а лучше до 10к...100к
2) Увеличенное сопротивление входного резистора создаст делитель с подтягивающим резистором 100к. Потому что подтягивающий резистор стоит не на месте. Он должен стоять прямо на входе, тогда проблем не будет. Заодно это позволит поставить более низкоомный резистор, ибо 100к для подтяжки слишком много. Лучше поставить 3.3к...10к, это пригасит наводимые помехи и улучшит самоочистку механических контактов.
3) Нет никакого смысла ставить диоды Шоттки на входе. Резистор 1к последовательно со входом гарантирует, что основная часть тока помехи уйдет через внешние диоды, а через встроенные диоды ток будет мизерным.
4) Конденсатор лучше не подключать прямо ко входу, его место - параллельно внешним диодам. Тогда даже при неудачно выбранной точке подключения к земле, помеха, прошедшая через конденсатор, не сможет вызвать сбой и зависание микроконтроллера.

in_protect.png
 

=AK=

New member
А деление автором помех на три типа -вообще писк, так как он разделил на кислое зеленое и твердое.
"Целесообразно все помехи разделить на три абстрактных типа:
  • НП: Наносекундные помехи
  • МП: Мощные помехи
  • РП: Радиочастотные помехи"
И утверждает таким образом что кислое не бывает зеленым и твердым одновременно.
Сразу же вслед за процитированным вами, в следующем же предложении черным по белому сказано: "Практически все реальные помехи могут быть представлены как комбинации этих трех абстрактных" и далее приводятся примеры. Смешно, ей-богу. :D

Примеры взяты с потолка , например проходная емкость оптрона взята 0.5 пф, откуда это значение?
Наверное потому что PC817 = 0.6 pF typ, а у многих других еще больше

Она даже не нормируется
С чего вы взяли? Откройте любой даташит.

Очевидно значение притянуто чтобы получилось 4 вольта, а то получится менее 2 и уже не тот пример.
С вдвое большей проходной емкостью 1 пФ получится, ессно, вдвое большее напряжение, 8 В. Очевидно, автор взял консервативное маленькое значение 0.5 пФ для того, чтобы его не обвиняли , что пример нереалистичный и притянут, а с реальными оптронами напряжение будет меньше. :cool:
 
Последнее редактирование:

DimKasM

New member
Друзья, огромное спасибо за ответы!

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

Практическая
-----------------
Все-таки я выбрал этот форум именно потому что здесь есть прикладной опыт работы с ESP8266. И наверняка такая тривиальная задача как подключения разумно удаленного (до 2-3 метров) датчика Холла для подсчета прерываний у многих уже была. И меня (ну и других) интересует Ваши готовые продакшен-решения, которые Вы используете и которые зарекомендовали себя, как "постоянно работающие". Поэтому, пожалуйста поделитесь Вашими наработками по помехозащите для GPIO входов для ESP. Заранее спасибо!

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

Теперь конкретнее
------------------------

Возможно помехи не по воздуху а по питанию.
1) можно для эксперимента запитать ESP от батарейки на 3 вольта. т е на плату подать 3 вольта туда где указано 3.3 а 5 вольт снять.
2) Взять 5 вольт с USB компа или другого источника который не от 12 вольт а от сети 220
ждем'с результата.
Я пробовал брал два независимых БП на 12В, к одному напрямую подключал насос-двигатель, а другой питал саму ЕСП. Результат тот же как я и писал: если к GPIO входу припаян проводок (подтянутый к 3.3В) то при близком расположении провода от насос начинают происходить ложные срабатывания счетчика, то есть наблюдаем помехи. Другие же соседние GPIO которые также настроены на прерывания и ни к чему не подтянуты (ничего к ним не припаяно) ведут себя нормально, помехи на них не наблюдаются.

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

Читайте статью, там все сказано: и почему вы не видите помех осциллографом, и как защищаться. Но материал довольно "сухой", начинающим дается с трудом. К тому же он разрушает некоторые устоявшиеся мифы, типа что оптроны якобы являются панацеей от помех.
Спасибо прочитал. Но остались вопросы: я не вижу помех на осциллографе потому что они высокачастотные? Лже-показания счетчика при работающем насосе составляют порядка 20 импульсов в секунду. Такие колебания должны быть видны на осциллографе!

Очень интересно в статье про разделение грязную и чистую землю. Хотя как я уже писал мой эксперимент с двумя отдельными БП показывает, что проблема не в этом, но это может пригодиться в перспективе от других помех. Как я понял чистая и грязная земля разделяются между собой резистором. В статье 10кОм. Это для всех случаев? Как рассчитывается его номинал?

Вот, к примеру, у вас в модуле реле стоят оптроны, которые от помех никого и никак не защищают. А схема этого модуля и его разводка сделаны так глупо, что он сам является мощным источником помех. Использованные там реле имеют большую проходную емкость, около 10 пФ. Сетевые помехи через эту емкость свободно проходят на низковольтную часть и через входные терминалы модуля реле уходят в ваш клубок проводов. Далее за счет емкостных связей пoмехи переходят на другие провода и вызывают перечисленные вами проблемы.
Я исключал в тестах реле из схемы и патл насос напрямую. Проблема не в этом. Кстати оптроны на модуле реле я пока не использую. Прежде всего, я коммутирую реле не 220в, а 12В. Для 220В я бы использовал твердотельные реле. Во-вторых модуль I2C модуль расширения на MCP23017 от RobotDyn в Киеве и Украине уже имеет свое отдельное питание и поэтому реле замыкается не загружая GPIO выходы самой ESP, а по цифровой шине I2C через MCP23017.

И еще вам совет: никогда не используйте желто-зеленые провода для разводки сетевого питания. Они могут использоваться только и исключительно для защитного заземления. Использовать их для разводки нуля или фазы нельзя ни в коем случае, никакого оправдания этому нет.
Там нет силового питания, в этом блоке коммутируется 12В. Но все же да замечание принято, даже для +12В цвет провода лучше выбрать другой.
 

nikolz

Well-known member
Друзья, огромное спасибо за ответы!

Я пробовал брал два независимых БП на 12В, к одному напрямую подключал насос-двигатель, а другой питал саму ЕСП. Результат тот же как я и писал: если к GPIO входу припаян проводок (подтянутый к 3.3В) то при близком расположении провода от насос начинают происходить ложные срабатывания счетчика, то есть наблюдаем помехи. Другие же соседние GPIO которые также настроены на прерывания и ни к чему не подтянуты (ничего к ним не припаяно) ведут себя нормально, помехи на них не наблюдаются.
Там нет силового питания, в этом блоке коммутируется 12В. Но все же да замечание принято, даже для +12В цвет провода лучше выбрать другой.
всегда сложно по рассказу о больном поставить диагноз.
-----------
1) правильно ли я понял, что помехи лишь на одном GPIO? каком?
2) предлагаю сделать так: возьмите два провода - сделайте витую пару 1 провод - это контакт 2- провод это на землю.
-------------------
еще предлагаю развернуть блок реле на 90 или 180 градусов. провода станут короче .
--------------------
поясните какие характеристики датчика холла
 
Последнее редактирование:

=AK=

New member
"Нет ничего практичней хорошей теории" (с)

остались вопросы: я не вижу помех на осциллографе потому что они высокачастотные?
Или потому что они слишком короткие, или потому что они редкие и теряются на фоне основных импульсов, или и то и другое.

Какой у вас осциллограф? Какой длительности импульсы он способен показать? Есть ли у него режим синхронизации по помехам (у дорогих - бывает, когда триггер срабатывает не на сам импульс, а в случае если импульс слишком короткий или искажен)

Лже-показания счетчика при работающем насосе составляют порядка 20 импульсов в секунду. Такие колебания должны быть видны на осциллографе!
Даже если на этой линии вообще нет никаких других импульсов, то показать импульсы длительностью, скажем, 1...5 нс, следующие с частотой 20 Гц, способен далеко не всякий осциллограф.

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

Электрически разделяют не земли, а сигналы. И разделяют их не каким-то липовым "универсальным резистором 10к", а барьером, в качестве которого может служить илиоптрон, или резистор (от 10 Ом до 100 кОм, по месту), или дроссель, или ферритовая бусина, и т.п.
 

nikolz

Well-known member
"Нет ничего практичней хорошей теории" (с)


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

Какой у вас осциллограф? Какой длительности импульсы он способен показать? Есть ли у него режим синхронизации по помехам (у дорогих - бывает, когда триггер срабатывает не на сам импульс, а в случае если импульс слишком короткий или искажен)


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


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

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

=AK=

New member
Можете показать все это хотя бы на одном эксперименте.
Особенно интересно про наноимпульсы. уже второй раз читаю на форуме про их влияние на солнечное затмение. Но хорошо бы увидеть результат эксперимента что оно есть на огороде.
У меня этих экспериментов по жизни было десятки, если не сотни. Да только спецально все те установки, где они проявлялись, я в музее не храню, а собирать специально для вас еще одну очень лень, извините.

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

А другая часть включала в себя тестовое оборудование, которого у меня дома нет, оно осталось на месте работы, с которой я перешел на другую. Но я могу вам подсказать, ранее это называлось CE Master, можете подыскать похожую и купить себе. Это недорого, лет 20 назад она примерно 10 тыс баксов стоила, сейчас, может, подешевела. Разрядник для тестирования на ESD наверняка не более пары тысяч баксов стоит, тоже очень полезная вещь в хозяйстве.
 
Последнее редактирование:

nikolz

Well-known member
У меня этих экспериментов по жизни было десятки, если не сотни. Да только спецально все те установки, где они проявлялись, я в музее не храню, а собирать специально для вас еще одну очень лень, извините.
Как полагаете как влияет на уровень помех входная емкость пина 2 пф, если проходная оптрона 0.5 пф?
 

nikolz

Well-known member
У меня этих экспериментов по жизни было десятки, если не сотни. Да только спецально все те установки, где они проявлялись, я в музее не храню, а собирать специально для вас еще одну очень лень, извините.

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

А другая часть включала в себя тестовое оборудование, которого у меня дома нет, оно осталось на месте работы, с которой я перешел на другую. Но я могу вам подсказать, ранее это называлось CE Master, можете подыскать похожую и купить себе. Это недорого, лет 20 назад она примерно 10 тыс баксов стоила, сейчас, может, подешевела.
Мамонты давно вымерли, а Вы все еще на них стрелы готовите.
 

=AK=

New member
Как полагаете как влияет на уровень помех входная емкость пина 2 пф, если проходная оптрона 0.5 пф?
А вы попробуйте эквивалентную схему нарисовать и задумайтесь, 2 пФ (на самом деле больше, 7-10 пФ, иногда до 50 пФ) - а второй ее конец куда идет?
 

nikolz

Well-known member
А вы попробуйте эквивалентную схему нарисовать и задумайтесь, 2 пФ (на самом деле больше, 7-10 пФ, иногда до 50 пФ) - а второй ее конец куда идет?
а вы попробуйте документацию прочитать, там указано 2 пф. Но на самом деле они плоские.
 

nikolz

Well-known member
А вы попробуйте эквивалентную схему нарисовать и задумайтесь, 2 пФ (на самом деле больше, 7-10 пФ, иногда до 50 пФ) - а второй ее конец куда идет?
Можете мне объяснить бывают ли наноимпульсы не радиочастотные? Примерчик для наглядности.
 

=AK=

New member
а вы попробуйте документацию прочитать, там указано 2 пф. Но на самом деле они плоские.
Документацию на что, на сферического коня в вакууме? Вот вам кусок документации на простую логическую микросхему 74HC125in_capacitance.png
 

nikolz

Well-known member
Документацию на что, на сферического коня в вакууме? Вот вам кусок документации на простую логическую микросхему 74HC125Посмотреть вложение 6579
Вроде бы про ESP беседуем? или я что-то пропустил?
А что такое "радиочастоные" помехи? И как насчет наноимпульсов но не радиочастотных? примерчик в студию, плиз.
 

enjoynering

Well-known member
первое правило электрика - разделять силовые и сигнальные линии. уберите кашу из сигнальных проводов подальше от силовых.
 
Сверху Снизу