Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Определение 220В с помощью arduino

Вс окт 10, 2021 19:58:00

Здравствуйте.
необходимо с помощью Arduino определять наличие 220В в сети.
вот кусок схемы, с помощью которого это выполняется:

Изображение

в качестве оптопар используются mid400:

Изображение

выходы AC_TEST и AC_TEST2 подключаются к цифровым выходам ардуино.

пины я настраиваю как

Код:
pinMode(acTestPin1, INPUT_PULLUP);
pinMode(acTestPin2, INPUT_PULLUP);


в моем понимании, когда напряжение отсутствует на пинах будет +5В т.е. логический уровень HIGH, когда напряжение появится, должен быть уровень LOW.
определяю я следующим образом:

Код:
    int acTestValue1 = 1;
    int acTestValue2 = 1;
    unsigned long startMeasuring = millis();

    do {

        if (acTestValue1 && !digitalRead(acTestPin1)) {
            acTestValue1 = 0;
        }

        if (acTestValue2 && !digitalRead(acTestPin2)) {
            acTestValue2 = 0;
        }

    } while ((acTestValue1 && acTestValue2) && ((millis() - startMeasuring) < 20));

    return acTestValue1 && acTestValue2;



20 - это 20мс, т.е. за этот интервал времени, если напряжение есть, оно точно будет замечено.

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

подскажите, в чем я тут ошибаюсь)) почему не работает.

Re: Определение 220В с помощью arduino

Вс окт 10, 2021 23:33:03

Обычного электромагнитного реле вполне достаточно.
8)

Re: Определение 220В с помощью arduino

Вс окт 10, 2021 23:54:49

Обычного электромагнитного реле вполне достаточно.
8)

я, может, не до конца описал)
такая плата уже есть и надо работать с ней.

Re: Определение 220В с помощью arduino

Пн окт 11, 2021 00:13:28

Иногда надо отказаться от недостаточно верного выбора схемного решения.
Любое электромагнитное реле под переменное напряжение 220 вольт даст гораздо более корректный результат.
И лишние проводки к заземлению тащить не потребуется.
Кстати... на те "токи утечки" при Вашей схеме вполне можно неприятность от окружающих огрести за внеплановые отключения электропитания, ежли у потребителя УЗО в электрощите установлено.
:roll:

Re: Определение 220В с помощью arduino

Пн окт 11, 2021 00:14:21

интересно зачем применены оптроны если они все равно не дают гальванической развяззки при таком включении... ;)

я правильно понял что не нужно измерять напряжение а только наличие некоего напряжения с довольно грубым порогом ?
скажем считать что все ок если хотябы на 1 из полюсов вилки появляются импульсы хтябы 100V да?

1. смотрел осциллоскопом на выходах оптоусилителей?

2. на входах mcu куда приходят VO (pin6) обязательно должны быть пуллап резисторы (либо запрогрраммированные в gpio конфигурации, либо физические)



зы без гальваноразвязки (как и у тебя) это делается 2мя резисторными делителями 1M-15k на 2 gpio pin в режиме входа, без pull up/down. входной резистор 1M делителя вместе с диодами внутри mcu образуют защиту входа. это надежный проверенный и совершенно безопасный метод. есть только спец требования к трассировке и выбору входных резисторов.

Re: Определение 220В с помощью arduino

Пн окт 11, 2021 00:24:26

Присмотрись к схеме - там ведь не кольцо "фаза-нуль", а две веточки "фаза - заземление" и "нуль-заземление"...
:facepalm:

Re: Определение 220В с помощью arduino

Пн окт 11, 2021 00:47:16

Иногда надо отказаться от недостаточно верного выбора схемного решения.
Любое электромагнитное реле под переменное напряжение 220 вольт даст гораздо более корректный результат.


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

я правильно понял что не нужно измерять напряжение а только наличие некоего напряжения с довольно грубым порогом ?
скажем считать что все ок если хотябы на 1 из полюсов вилки появляются импульсы хтябы 100V да?

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

1. смотрел осциллоскопом на выходах оптоусилителей?

нет, не смотрел.. посмотрю, напишу.
2. на входах mcu куда приходят VO (pin6) обязательно должны быть пуллап резисторы (либо запрогрраммированные в gpio конфигурации, либо физические)

пуллапы есть, сигнал по умолчанию высокий.

Присмотрись к схеме - там ведь не кольцо "фаза-нуль", а две веточки "фаза - заземление" и "нуль-заземление"...

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

Re: Определение 220В с помощью arduino

Пн окт 11, 2021 00:55:22

внешние последовательные диоды вдвое уменьшают рассеиваемую резисторами мощность. тоже полезное дело )).
еще они вероятно превращает 1 импульс -ok в пачку импульсов (зависит от задержки внутри усилителя оптрона)

Re: Определение 220В с помощью arduino

Пн окт 11, 2021 01:09:13

А чем, собственно, вам даташитовская схема не понравилась? Там всё "коротко и ясно" описано:
https://www.mouser.com/datasheet/2/149/MID400-68116.pdf
на шестой странице даташита?
Есть напряжение на входе- на выходе высокий уровень, есть напряжение на входе- на выходе низкий уровень.. :dont_know:
Конденсатор между выводом 7 и "землёй" определяет время реакции на появление/пропадание напряжения на входе..
Если вам так нужно использовать именно ваш вариант- сделайте вот так:
Вложения
010101.png
(128.82 KiB) Скачиваний: 180

Re: Определение 220В с помощью arduino

Пн окт 11, 2021 10:32:33

Это не так просто, как кажется.
В данном случае делалась или "тупая оптопара" с большой инерционностью (1mS на отключение/включение) или в схеме обработки вутри оптрона ставится "расширитель импульсов с перезапуском".
А у нас сикоки при 50 Гц? - 0,02S период / 0,01S полупериод.
Да и токоограничитель явно с амплитудой (скоростью наростания напряжения) связан по допустимому номиналу.
Отклонения как по частоте так и по амплитуде входого напрядения (не говоря уже о форме) может дать непредсказунмые последствия.
Ну и скорость реакции в N полупериодов также не лучший вариант.
Может схему контроля перехода через 0 фазы и дополнительный обработчик "отсутствия переходов" будет удачнее применить?
8)
Пы.Сы.
Исходный вариант топикстартера будет работать только в том случае, если шина GND контроллера соединена с заземлением всей электроустановки.
(За возможный "ЁКоТОК" в данном случае .... уомолчамс....)
:tea:
Ответить