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

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
gogoer
Родился
Сообщения: 17
Зарегистрирован: Ср май 05, 2021 00:34:11

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

Сообщение gogoer »

Здравствуйте.
необходимо с помощью 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мс, т.е. за этот интервал времени, если напряжение есть, оно точно будет замечено.

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

подскажите, в чем я тут ошибаюсь)) почему не работает.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Обычного электромагнитного реле вполне достаточно.
8)
gogoer
Родился
Сообщения: 17
Зарегистрирован: Ср май 05, 2021 00:34:11

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

Сообщение gogoer »

[uquote="BOB51",url="/forum/viewtopic.php?p=4104010#p4104010"]Обычного электромагнитного реле вполне достаточно.
8)[/uquote]
я, может, не до конца описал)
такая плата уже есть и надо работать с ней.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Иногда надо отказаться от недостаточно верного выбора схемного решения.
Любое электромагнитное реле под переменное напряжение 220 вольт даст гораздо более корректный результат.
И лишние проводки к заземлению тащить не потребуется.
Кстати... на те "токи утечки" при Вашей схеме вполне можно неприятность от окружающих огрести за внеплановые отключения электропитания, ежли у потребителя УЗО в электрощите установлено.
:roll:
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

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

Сообщение AlexS4 »

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

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

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

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



зы без гальваноразвязки (как и у тебя) это делается 2мя резисторными делителями 1M-15k на 2 gpio pin в режиме входа, без pull up/down. входной резистор 1M делителя вместе с диодами внутри mcu образуют защиту входа. это надежный проверенный и совершенно безопасный метод. есть только спец требования к трассировке и выбору входных резисторов.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Присмотрись к схеме - там ведь не кольцо "фаза-нуль", а две веточки "фаза - заземление" и "нуль-заземление"...
:facepalm:
gogoer
Родился
Сообщения: 17
Зарегистрирован: Ср май 05, 2021 00:34:11

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

Сообщение gogoer »

Иногда надо отказаться от недостаточно верного выбора схемного решения.
Любое электромагнитное реле под переменное напряжение 220 вольт даст гораздо более корректный результат.
Отказаться пока нельзя, надо работать с тем, что уже есть. Идея с электромагнитным реле мне кажется хорошей, но пока имеем то, что имеем.
Есть плата, она работает, но надо функционал немного расширить. Тех, кто писал прошивку уже не найти, поэтому решено было переписать с нуля. Поэтому буду очень признателен за помощь)
я правильно понял что не нужно измерять напряжение а только наличие некоего напряжения с довольно грубым порогом ?
скажем считать что все ок если хотябы на 1 из полюсов вилки появляются импульсы хтябы 100V да?
по сути, да. мы там щелкаем релешкой, замыкаем контакты 220В и нужно убедиться, что реле замкнулось и напряжение появилось.
1. смотрел осциллоскопом на выходах оптоусилителей?
нет, не смотрел.. посмотрю, напишу.
2. на входах mcu куда приходят VO (pin6) обязательно должны быть пуллап резисторы (либо запрогрраммированные в gpio конфигурации, либо физические)
пуллапы есть, сигнал по умолчанию высокий.
Присмотрись к схеме - там ведь не кольцо "фаза-нуль", а две веточки "фаза - заземление" и "нуль-заземление"...
зачем так сделано, я совсем не понимаю. тем более, там две микросхемы mid400. судя по даташиту, она одна прекрасно все может определить, и еще непонятно, зачем там диоды внешние, если в mid400 есть внутренние диоды.
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

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

Сообщение AlexS4 »

внешние последовательные диоды вдвое уменьшают рассеиваемую резисторами мощность. тоже полезное дело )).
еще они вероятно превращает 1 импульс -ok в пачку импульсов (зависит от задержки внутри усилителя оптрона)
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43784
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

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

Сообщение АлександрЛ »

А чем, собственно, вам даташитовская схема не понравилась? Там всё "коротко и ясно" описано:
https://www.mouser.com/datasheet/2/149/MID400-68116.pdf
на шестой странице даташита?
Есть напряжение на входе- на выходе высокий уровень, есть напряжение на входе- на выходе низкий уровень.. :dont_know:
Конденсатор между выводом 7 и "землёй" определяет время реакции на появление/пропадание напряжения на входе..
Если вам так нужно использовать именно ваш вариант- сделайте вот так:
СпойлерИзображение
Вложения
010101.png
(128.82 КБ) 1004 скачивания
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

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

Вернуться в «Arduino»