Внешний источник питания создаёт помехи на INTERRUPT пинах

Тема в разделе "Arduino & Shields", создана пользователем zi4rox, 30 янв 2018.

  1. zi4rox

    zi4rox Нуб

    Здравствуйте,

    Кейс:
    Arduino Mega в составе проекта управляет несколькими LED и RGB лентами через N-канальный мосфет и PWM. Так же эта же ардуино посредством прерываний INT0, INT1 выполняет и другие функции (обработка нажатия кнопок, и прочее). Питание организовано так: от 1 блока питания +5В питается ардуино (через джек) и печатная плата. Для лент отдельные блоки питания по 12В. Земли источников питания соединены. Блоки питания 12В от лент располагаются на разных расстояниях от 0.5м до 15м.

    Проблема:
    Когда включаю блоки питания лент (12В) и открываю мосфет - ток начинает идти на ленты, то на всех interrupt пинах (2,3 к примеру) наблюдаю помеху. Происходит постоянное бесконечное срабатывание - что рушит выполнение всей программы. Прерывания настроены как:
    Код (C++):
    attachInterrupt(digitalPinToInterrupt(3), foo, RISING);
    Как только выключаешь блоки питания лент - помеха пропадает.
    Как исправить/повлиять на эти помехи?

    Что пробовал:
    1. Устанавливать пины прерываний, как:
    Код (C++):
    pinMode(3, INPUT_PULLUP)
    2. Физически подпаивал pulldown 10k к пину
    3. На вход питания на плате между +5В и GND керамический конденсатор на 0.1мкф и 1 мкф

    Прошу помощи, начинающий. Схему соединения прилагаю к сообщению.
     

    Вложения:

  2. b707

    b707 Гуру

    судя по схеме, у вас затвор мосфета подтянут резистором R123 к питанию. При этом мосфет у вас будет всегда включен.Зачем так?
    Затвор N-мосфета принято притягивать к GND.
     
  3. zi4rox

    zi4rox Нуб

    Спасибо, за замечание - да к земле логичнее, но без них мосфет не открывался.
    Проблему с помехами решил доп. конденсаторами на всех блоках питания, и перераспределением проводов.
    Как вывод: огромное внимание нужно уделять правильной проектировке печатной платы, для борьбы с шумами и наводками
     
  4. ostrov

    ostrov Гуру

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