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

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

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

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

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

Сообщение BOB51 »

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

Сообщение gogoer »

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

Сообщение BOB51 »

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

Сообщение AlexS4 »

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

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

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

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



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

Сообщение BOB51 »

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

Сообщение gogoer »

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

Сообщение AlexS4 »

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

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

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

Сообщение BOB51 »

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

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