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

Нужна помощь Шум на GPIO при включении моторчика

АндрейМ

New member
Добрый вечер.

Есть 12е, у которой на gpio13 стоит кнопка, на gpio14 моторчик через мосфет на 12 вольт. земля общая естественно. Блок питания +12- в +5 и 1117 +5 в +3,3.
На макетке без моторчика все работает как нужно (хотя дребезг на кнопке пришлось убирать алгоритмически). Как только включается моторчик, начинаются ложные срабатывания кнопки и (возможно) перегрузки. Параллельно моторчику стоит конденсатор. Питание не просаживается. Пин кнопки подтянунт 9к к +3,3в.
Есть ли рабочая схема подтяжки и подключения обычного движка к ЕСП8266? Да и вообще рекомендации по "стабилизации" этого чуда были-бы очень полезны. Уж очень не хочется вновь изобретать велосипед.
 

KomX

Member
Поставьте параллельно кнопке конденсатор на 1-2 наноФ., - уберёт дребезг и понизит чувствительность к импульсной помехе, прущей через паразитную ёмкость "исток-затвор". Идеально было бы применить оптронную развязку, ибо меня "терзают смутные сомнения" по поводу полноты открытия канала мосфета при управляющем напряжении около 3 вольт.
Резистор то хоть между 14-м пином и затвором поставили?
 

=AK=

New member
рекомендации по "стабилизации" этого чуда были-бы очень полезны.
http://caxapa.ru/lib/emc_immunity.html

У вас наверняка земли плохо разведены и барьеров нет. Исток MOSFET должен быть заземлен поближе к источнику питания, подальше от ESP; рядом должен стоять керамический кондер между питанием мотора и землей (истоком). Еше дроссель в цепь питания мотора полезно было бы поставить. Mежду затвором MOSFET и ESP должен стоять резистор 1ooR или более. Между кнопкой и входом ESP тоже должен стоять резистор порядка 10к.

А включать кондер параллельно кнопке - это значит не знать второй закон коммутации. Не надо этого делать, из-за конденсатора кнопка сама станет источником помех.
 
Последнее редактирование:

АндрейМ

New member
Спасибо всем за проявленный интерес и помощь.
Между пином и затвором пропущен к100 резистор. Установка не помогла. Пробую подтяжку с + на землю переделать
отключайте прерывания от кнопки при пуске двигателя. потом включайте
Проблема возникает не при запуске, а при работе. Именно когда эта кнопка должна его тормозить.
 

АндрейМ

New member
Я начинаю проникаться ненавистью pvvx-а к платформе ESP8266. Кнопка перестала реагировать на моторчик, но на кондиционер реагирует с завидной регулярностью.
Переделал кнопку с прерывания на поллинг. Других вариантов не вижу.

опрашиваю с интервалом 50 мс состояние пина n раз.
если кнопка не нажата и n-1+ опросов пина "1" - нажатие кнопки
если кнопка нажата и меньше 2 опросов "1" - кнопка не нажата.

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

АндрейМ

New member
попробую объяснить в третий раз.
Достаточно одного раза.
У Вас нажатие кнопки и изменение режима двигателя - это последовательные действия.
Вы форумный троль? Я же уже объяснял, что кнопка должна работать вне зависимости от работы двигателя. Какие аварийные режимы? Какие управляющие воздействия? Вы о чем? Читайте Кнута на ночь и будет счастье.
Защита от дребезга делается не путем многократного опроса (это грузить процессор) а путем приема прерывания от кнопки и измерения интервала между этими прерываниями. По такому алгоритму будет все работать без проблем.
В опросе кнопки один раз в 50 мс нет загрузки процессора. Про прерывания - ложные срабатывания не связаны с нажатием кнопки и они не связаны с запуском двигателя. Оно может сработать и через секунду и через десять после его включения. Задержка до расплава мотора?
И не стоит пенять на зеркало.
Это к чему? Замечал за Вами некоторую несдержанность. Вас при упоминании pvvx трясти начинает?
 
Сверху Снизу