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

Нужна помощь Помехозащищенность выносной кнопки

sboganov

Member

CodeNameHawk

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

nikolz

Well-known member
Время на обработку должно быть больше длительности помехи.
Как справится вам алгоритм с часто повторяющейся помехой?
Он ее отфильтрует.
попробуйте нарисовать помеху. если длительность одного ее импульса меньше 100 мс то он подавляется
т е не важно часто она идет или редко
Но если вы нажмете кнопку то эта помеха будет закорочена и импульс от нажатой кнопки будет больше 100 мс и кнопка распознается.
Длительность временных ворот (фильтра) можно регулировать в зависимости от условий нажатия кнопки.
Такой алгоритм эквивалентен RC фильтру,
но не создает проблем с токами заряда разряда больших кондеров и не требует паяльника и набора резисторов и конденсаторов .
-------------------
Если понять что цифровые фильтры делают даже больше чем аналоговые, то паять не потребуется.
 

=AK=

New member
Время на обработку должно быть больше длительности помехи.
Как справится вам алгоритм с часто повторяющейся помехой?
Из описаний ТС до сих пор невозможно понять, какого рода глюки у него возникают:
- то ли ложный сигнал на входах от кнопок, при этом процессор продолжает работать нормально
- то ли сброс процессора от помех

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

nikolz

Well-known member
Коль пошла такая пьянка, то скажу следующее.
--------------------------------
Я вообще стараюсь не использовать механические реле (вернее сказать вообще их не использую)
Если автор темы использовал бы симисторы то в описанном мною выше решении нужен лишь один источник питания для самой ESP
Симисторы очень органично вписываются в любые схемы управления нагрузкой и не требуют отдельных источников питания.
----------------------------
Но такой подход требует работы серого вещества, которое под шапкой, но лень, которая родилась раньше нас, мешает нам.
 

CodeNameHawk

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

=AK=

New member
Я вообще стараюсь не использовать механические реле (вернее сказать вообще их не использую)
Это дело вкуса. Однако невозможно гарантировать, что вообще никто не использует ни реле, ни механических выключателей, коммутирующих сетевые нагрузки. Поэтому я стараюсь делать свои устройства такими, чтобы им было все равно, есть рядом реле или выключатель, или нет. А после этого мне становится однофигственно, чем коммутировать нагрузку, при помощи реле или симистором.
 

=AK=

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

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

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

да, я писал. что использую прошивку WiFi IOT (WiFi-IoT Firmware Builder :: Main). в ней кнопки реализованы через прерывания.
программная отстройка от звонов и помехозащита присутствует. также можно указывать как ловить прерывание - по фронту, срезу или сразу по обоим событиям.
Что там за "программная отстройка от звонов и помехозащита" и задействована ли она у вас - бог весть. Опять нам остаются одни гадания на кофейной гуще. :oops:

Если ваши "глюки" заключаются не в сбросе микроконтроллера, а именно в редких ложных срабатываниях, то многократный опрос кнопок должен резко улучшить ситуацию. Однако прежде чем ставить такой костыль, лучше было бы добиться стабильной работы путем правильной разводки земель. И только после этого ставить многократный опрос, забивая тем самым последний гвоздь в крышку гроба, где будут похоронены помехи. :rolleyes:
 
Последнее редактирование:

hc2hunter

Member
Из описаний ТС до сих пор невозможно понять, какого рода глюки у него возникают:
- то ли ложный сигнал на входах от кнопок, при этом процессор продолжает работать нормально
- то ли сброс процессора от помех

Я исхожу из второго предположения, но это всего лишь гипотеза. Когда у ТС стояли оптроны, то глюки были первого рода, сейчас же из его объяснений ничего понять нельзя. Вместо того, чтобы внятно изложить наблюдения, он продолжает большую часть времени тратить на пустые рассказы как у него питание подключено.
все было изложено ранее не один раз. но когда идет одно моё сообщение, а следом 10 сообщений срача, где все переворачивается с ног на голову, то понять естественно ничего нельзя. из 13 страниц обсуждению вопроса посвящено от силы 2 (если отфильтровать флейм)

проц ни разу у меня никуда не перезагружался. все глюки именно от ложных прерываний на gpio in.
про питание реле тема поднята интересная. попробую разорвать джампер и подать +5 только на JD-VCC. Правда, не понятно как это повлияет, т.к. земля общая, да и 3.3 на проце - это производная от этих же +5.


Автор до сих пор не попробовал заняться отладкой, что бы локализовать источник(и) проблем.
Логика простая, написать отдельные программы для проверки кнопок и реле, с выводом в сериал ну или на светодиод.
заниматься писаниной я не буду. я использую проверенный софт, который отлично работает на куче других устройств, не только у меня.
а решать программным workараундом аппаратные косяки инженеров - это называется ГОВНОКОДИНГ. давайте не будем идти таким путем, потому что это в любом случае очень грязная практика. вы и сами прекрасно знаете, сколько таких решений сейчас вокруг нас в любой радио-телетехнике. в тех же интернет-роутерах во всей красе.
 
Последнее редактирование:

hc2hunter

Member
Если автор темы использовал бы симисторы то в описанном мною выше решении нужен лишь один источник питания для самой ESP
Симисторы очень органично вписываются в любые схемы управления нагрузкой и не требуют отдельных источников питания.
семисторы (твердотельные реле) кроме всего очень шикарно греются. если только это не поделочный ширпотреб на китайские "еле-еле 2 ампера" за 50р.
сегодня я отлаживаю реле на лампочках 10вт, а завтра возьму и повешу конвектор на 2кВт. и что будет с тем семистором? или сразу его посоветуете к рельсе примотать для теплоотвода...?
 
Последнее редактирование:

pvvx

Активный участник сообщества
@nikolz -вы о чем? Опять о с своем?
Это у =AK= мерещатся ESD и НИП импульсы везде. Даже от включения паяльника в соседней розетке...
У меня тоже иногда требуется защита и сохранение работоспособности при них.
Как к с ними бороться уже описали много раз.
А у заявителя данной темы проблема не решена.
И объявленная тема включает в себя и аппаратные и программные решения...
 
Последнее редактирование:

pvvx

Активный участник сообщества
семисторы (твердотельные реле) кроме всего очень шикарно греются. если только это не поделочный ширпотреб на китайские "еле-еле 2 ампера" за 50р.
сегодня я отлаживаю реле на лампочках 10вт, а завтра возьму и повешу конвектор на 2кВт. и что будет с тем семистором? или сразу его посоветуете к рельсе примотать для теплоотвода...?
Всё Ok будет. Схему дать как включать 100 кВт моторы? :)
С реле неизбежно вам придется паять всякие фильтры, да и нагрузку более 200 Вт ныне не принято врубать без корректора мощности выполняющего плавный пуск. Сама коррекция активки/реактивки тут не обязательна...
Маркировку чипа DC-DC микросхемы на плате "nodemcu lolin base" кинуть можете?
 
Последнее редактирование:

pvvx

Активный участник сообщества
@hc2hunter тут
вызывает сомнение, что это не перезагрузка по реакции мигания светодиода...
 

=AK=

New member
проц ни разу у меня никуда не перезагружался. все глюки именно от ложных прерываний на gpio in.
Ну наконец-то внятная информация. Когда вы месяцами что-то делаете и переделываете, то невозможно понять ни текушее состояние вашего объекта, ни валидность описаний старых проблем.

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

"Программную отстройку от звонов и помехозащиту" я там не нашел. Единственное что есть - косвенное признание, что выбранный способ обработки кнопок глючит от любого кошкина бздеха, а также совет использовать ADC KEY (очевидно, при этом кнопки обрабатываются при помощи АЦП, что совсем уж полный маразм):

Key - Управление GPIO по нажатию кнопки. Включение/ выключение GPIO , указанного в поле "GPIO For Key". Изменение состояния GPIO отправляется на сервера. Если Вам нужно больше кнопок , то используйте опцию ADC KEY - она так же менее потвержена помехам.
 

hc2hunter

Member
Маркировку чипа DC-DC микросхемы на плате "nodemcu lolin base" кинуть можете?
там собран какой-то DC-DC конвертер.
DSC_20180409_084517_939.JPG


"Программную отстройку от звонов и помехозащиту" я там не нашел. Единственное что есть - косвенное признание, что выбранный способ обработки кнопок глючит от любого кошкина бздеха, а также совет использовать ADC KEY (очевидно, при этом кнопки обрабатываются при помощи АЦП, что совсем уж полный маразм):
Настройку подавления там следует искать не в документации на функцию, а в самой функции:
apoh.jpg

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

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



@hc2hunter тут
вызывает сомнение, что это не перезагрузка по реакции мигания светодиода...
Вы когда-нибудь видели вообще как esp перезагружается? Или я все больше убеждаюсь, чт тут собрались болтуны?
Во-первых, он грузится секунды 3-4, то есть выглядеть его реакция со стороны будет совсем не так.
Во-вторых у чипа меняется аптайм.
А в-третьих, синяя светилка, которая вас смутила - сидит на GPIO2, и не ней очень удобно отлаживать работу кнопок. Я просто GPIO2 обозначил как инверсный OUTPUT и повесил на него одну из кнопок (сыммитировал реле, так сказать).

Еще раз говорю - я не настолько уж туп, что бы не отличить глюки от резета чипа. У меня ничего не перезагружалось пока ни разу.
 
Последнее редактирование:

=AK=

New member
Да и какой смысл прошивку обсирать?
Задача ввода сигналов от кнопок - совершенно пустяковая, и аппаратно, и программно. Но вы с ней долбаетесь уже несколько недель, а почему? Положим, сначала оптроны поставили, от которых был только вред. Но сейчас, при условии более-менее правильной разводки земель (а вам уже показали как надо), остается только на прошивку с никому неведомым кодом грешить.

Настройку подавления там следует искать не в документации на функцию, а в самой функции:
Если функция реализована корректно, то с такими настройками антидребезга она никак не может глючить так, как глючит по вашим описаниям.

Вероятно у вас что-то еще срабатывает от коротких помех. Например, какое-то другое прерывание активируется.
 
Последнее редактирование:

hc2hunter

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

pvvx

Активный участник сообщества
там собран какой-то DC-DC конвертер.
На шестилапом чипе какие цифры и буквы написаны?
Вы когда-нибудь видели вообще как esp перезагружается?
Нет - никогда не видел. Писал для него сотню проектов, но не перезагружал. :)
Или я все больше убеждаюсь, чт тут собрались болтуны?
Во-первых, он грузится секунды 3-4, то есть выглядеть его реакция со стороны будет совсем не так.
Во-вторых у чипа меняется аптайм.
А в-третьих, синяя светилка, которая вас смутила - сидит на GPIO2, и не ней очень удобно отлаживать работу кнопок. Я просто GPIO2 обозначил как инверсный OUTPUT и повесил на него одну из кнопок (сыммитировал реле, так сказать).
Светодиод моргает при старте, выводя сообщение о загрузке из ROM. Если вы не в курсе: минимальное время между мырганиями - 15..17 мс, что составляет время старта CPU в SoC ESP8266. Если вам интересно время соединения к AP на Arduino - замеры в разных режимах с табличками где-то уже выкладывал.
О да... "показали" это уж точно. Показали все кому не лень, и каждый по-своему, и тут же пересрались, что не понятно какое решение правильное...
Ну у =AK= и nikolz метод такой - своё "вся в белом" они достигают очернением других. В ответ других схем не приемлют.
Ну и также, прошивка с неведомым кодом прекрасно работает на куче других устройств с реле и кнопками, просто там другая схемотехника разводки (обычно заводское устройство с готовой платой).
Работает у других не только прошивка, но платки соединенные кое-как и как непопадя проводками и ваших описанных явлений не наблюдается. В этом и интересное - не всегда встречается такое место или условия. У меня вот все ESP8266 работают ныне с глюками и происходят и перезагрузки и что угодно, возникающие от рядом работающих WiFi устройств с сильным сигналом...
 
Последнее редактирование:

hc2hunter

Member
Светодиод моргает при старте, выводя сообщение о загрузке из ROM. Если вы не в курсе: минимальное время между мырганиями - 15..17 мс, что составляет время старта CPU в SoC ESP8266. Если вам интересно время соединения к AP на Arduino - замеры в разных режимах с табличками где-то уже выкладывал.
конечно я в курсе. а также я в курсе как это выглядит, когда чип включаешь или перезагружаешь.
я еще раз говорю - прошивка в моменты глюков не слетает и никакие прочие параметры в ней не меняются, включая uptime тоже. этого недостаточно что ли чтобы понять, что чип не перезагружается? или мы будем из-за общей безграмотности искать чудеса, где уж их действительно нет?

Шестилапый чип - это китайский dc-dc IF8HD, фотка его выше, там все отлично читается. Даташита на него скорее всего найти не получится... Продаются мешками "на вес" на taobao.
 
Сверху Снизу