Прерывание кнопки Arduino срабатывает при включении высокой мощности

У меня есть почти законченный прототип с использованием arduino uno. В основном его цель состоит в том, чтобы включать и выключать основную тепловую нагрузку переменного тока мощностью 2000 Вт с помощью тяжелого реле. Вход реле поступает от сети, но подключается к энергокомпании с помощью специального счетчика, который включается только между 23-07 часами ночью. Между прочим, питание Arduino постоянно, так что оно остается включенным.

Все это красиво встроено в коробку с небольшим ЖК-дисплеем на передней панели и кнопкой, подключенной 20-сантиметровыми проводами к плате Arduino (я использую protoshield).

Кнопка подтягивается резистором 10 кОм, который замыкается на землю при нажатии. Я поставил колпачок 0,47 мкФ на входной контакт = контакт 2, чтобы немного ослабить схему. В программном обеспечении я использую прерывание на заднем фронте для обнаружения нажатий кнопок. Все работает отлично ... За исключением ...:

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

У меня есть мультиметр, осциллограф, пайка ... так что я могу детально опробовать любые предложения.


person HixField    schedule 12.01.2016    source источник
comment
Решение этой проблемы, скорее всего, будет включать оборудование для фильтрации, я бы спросил здесь: electronics.stackexchange.com   -  person sptrks    schedule 12.01.2016
comment
Воспользуйтесь осциллографом (надеюсь, что он цифровой), чтобы увидеть реальную форму сигнала. Вероятно, это индукция на проводах кнопок, поэтому первое, что я попробую (так как вы уже отфильтровали ее с помощью схемы устранения дребезга), это экранировать кабели (вы можете попробовать с алюминиевой фольгой, припаянной к земле только на плате (не со стороны кнопки) или используйте экранированные кабели   -  person frarugi87    schedule 12.01.2016
comment
мой прицел действительно цифровой, поэтому я измерю его в ближайшие пару дней, моей следующей идеей было использование экранированного кабеля, давайте посмотрим, как это получится :)   -  person HixField    schedule 17.01.2016
comment
Я заменил провод, идущий к кнопке, на полностью экранированный провод и, конечно же, подключил экран к земле. К сожалению, это не решило проблему. Я действительно вижу всплески на линиях при переключении переменного тока. Теперь я обнаружил, что могу легко смоделировать проблему, поигравшись с входным разъемом переменного тока (создавая искрящийся контакт на входе). Следующим шагом будет добавление демпфирующей сети параллельно входному переменному току. Я дам вам знать, как это происходит ...   -  person HixField    schedule 07.02.2016
comment
Кстати, мое решение, которое, скорее всего, действительно сработает, - это заменить механическое контактное реле твердотельной версией, которая включает переход через ноль переменного тока. Однако, поскольку у меня большая нагрузка (10 А при 240 В переменного тока), SSR будет рассеивать до максимального тепла для моего корпуса, поэтому я хочу придерживаться механического реле и посмотреть, справится ли с этим трюк с помощью плотной сети.   -  person HixField    schedule 07.02.2016


Ответы (2)


У меня возникла аналогичная проблема при сборке стенда для впрыска топлива. Нажатие кнопки запускает имитацию последовательности работы двигателя, которая приводит в действие реле. Затем это реле запитывает до 6 форсунок. Что происходит, так это то, что как только я нажимаю кнопку, закрытие форсунок вызывает ток и отключает всю систему, чтобы начать снова. Решение, которое я обнаружил, работало, заключалось в использовании батареи для подачи напряжения на форсунки, а не на сам источник питания. Это изолирует питание Arduino от питания инжектора через мое реле. Проблема, конечно, теперь в том, что мне нужно держать аккумулятор заряженным. Ищу более элегантное решение.

person MasterTech    schedule 07.02.2016

Я пытался решить эту проблему аппаратно, но, к сожалению, не смог. Я пробовал эти варианты, но они НЕ работали.

  1. использовал экранированный кабель для кнопки
  2. реализовал конденсаторную сеть XY для шумоподавления на переменном токе нагрузки (входа), подобную этой: http://www.conrad.be/ce/nl/product/450571/K042201052-Ontstoringscondensator-XY-Radiaal-bedraad-01-F-250-VAC-1-stuks?ref=searchDetail

В итоге я реализовал следующее программное решение:

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

После первого нажатия кнопки в течение 1 секунды кнопка остается активной в течение 1 минуты.

person HixField    schedule 14.02.2016