Меню

Ардуино контроль напряжения 220в

Как с помощью Ардуино безопасно управлять нагрузкой на напряжении 220 вольт

Для системы «Умный дом» основной задачей является управление бытовыми приборами с управляющего устройства будь то микроконтроллер типа Ардуино, или микрокомпьютер типа Raspberry PI или любое другое. Но сделать этого напрямую не получится, давайте разберемся как управлять нагрузкой 220 В с Ардуино.

Для управления цепями переменного тока средств микроконтроллера недостаточно по двум причинам:

1. На выходе микроконтроллера формируется сигнал постоянного напряжения.

2. Ток через пин микроконтроллера обычно ограничен величиной в 20-40 мА.

Мы имеем два варианта коммутации с помощью реле или с помощью симистора. Симистор может быть заменен двумя включенными встречно-параллельно тиристорами (это и есть внутренняя структура симистора). Давайте подробнее рассмотрим это.

Управление нагрузкой 220 В с помощью симистора и микроконтроллера

Внутренняя структура симистора изображена на картинке ниже.

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

Я написал импульс не просто так. В отличие от транзистора тиристор является ПОЛУУПРАВЛЯЕМЫМ полупроводниковым ключом. Это значит, что при снятии управляющего сигнала ток через тиристор продолжит протекать, т.е. он останется открытым. Чтобы он закрылся нужно прервать ток в цепи или сменить полярность приложенного напряжения.

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

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

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

Таким образом, сигнал включает внутренний светодиод оптопары, она открывает симистор, который и подает управляющий сигнал на силовой симистор T1. В качестве оптодрайвера может быть использован MOC3063 и подобные, например, на фото ниже изображен MOC3041.

Zero crossing circuit – цепь детектора перехода фазы через ноль. Нужна для реализации разного рода симисторных регуляторов на микроконтроллере.

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

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

Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств

Реле и А рдуино

Для управления реле с А рдуино нужно использовать дополнительный транзистор для усиления тока.

Обратите внимание, использован биполярный транзистор обратной проводимости (NPN-структура), это может быть отечественный КТ315 (всеми любимый и всем известный). Диод нужен для гашения всплесков ЭДС самоиндукции в индуктивности, это нужно чтобы транзистор не вышел из строя от высокого приложенного напряжения. Почему это возникает, объяснит закон коммутации: «Ток в индуктивности не может измениться мгновенно».

А при закрытии транзистора (снятии управляющего импульса) энергии магнитного поля накопленной в катушке реле необходимо куда-то деваться, поэтому и устанавливают обратный диод. Еще раз отмечу, что диод подключен в ОБРАТНОМ направлении, т.е. катодом к плюсу, анодом к минусу.

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

Или купить готовый модуль или целый шилд с реле для Ардуино :

На фото изображен самодельный шилд, кстати, в нем использованы для усиления тока КТ315Г, а ниже вы видите такой же шилд заводского исполнения:

Это 4-канальные шилды, т.е. вы можете включать целых четыре линии 220 В. Подробно о шилдах и реле мы уже выкладывали статью на сайте — Полезные шилды для Ардуино

Схема подключения нагрузки на напряжении 220 В к Ардуино через реле:

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

Главная задача – обеспечить нужные напряжение и ток для управления симистором или реле и гальваническая развязка цепей управления и силовой цепи переменного тока.

Кроме безопасности для микроконтроллера, таким образом, вы подстраховываете себя, чтобы при обслуживании не получить электротравму. При работе с высоким напряжением нужно соблюдать все правила техники безопасности, соблюдать ПУЭ и ПТЭЭП.

Эти схемы можно использовать и для управления мощными пускателями и контакторами. Симисторы и реле в таком случае выступают в роли промежуточного усилителя и согласователя сигналов. На мощных коммутационных приборах большие токи управления катушкой и зависят непосредственно от мощности контактора или пускателя.

Источник

Определяем наличие сети 220В при помощи оптопары для Arduino

Задача проверки наличия 220в появилась для диспетчеризации работы теплого пола.

Необходимо определять — подано ли напряжение на сервоприводы клапанов коллектора теплого пола.

Определив моменты открытия/закрытия направлений отопления водяным теплым полом, можно уже вести статистику и передавать значения на сервер.

Выбор платы для контроля 220В.

Существуют в продаже специальные платы.

На вход подается исследуемая на наличие 220В линия, а на выходе будет 0 или +5В.

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

Бывают три вида плат с разным количеством измеряемых каналов: 1, 3, 8 — по цене 120, 320 и 622р соответственно.

Мне нужно контролировать наличие 220В нескольких направлений, поэтому заказал плату на 8 каналов.

Как работают изолированные оптопары.

Для начала необходимо выяснить — как же работает плата AC 220V 8 Channel MCU TTL Level 8 Ch Optocoupler Isolation Test Board Isolated Detection Tester Module PLC Processors.

Подключим ее к контроллеру Arduino Uno WiFi и посмотрим что будет на аналоговом входе при подаче 220В.

Пока на соответствующем контролируемом направлении сетевое питание отсутствует, на аналоговом входе Arduino мы наблюдаем значение 1023:

После подачи напряжения значение на аналоговом входе фиксируется на уровне 17-20:

Конечно имеет место переходный процесс:

Как использовать плату для контроля 220В при помощи Arduino.

Нам не нужно аналоговое значение, а нужно бинарное значение: ВКЛ/ВЫКЛ.

Получить это значение можно при помощи такого кода:

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

Возможно нужно добавить область неопределенности

Но в моем случае это лишне усложнит код, а работает и так.

Проблемы.

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

Там я контролировал питание 4-х головок-актуаторов направлений и питание насоса.

В зависимости от ситуации бывали моменты, когда плата зависала.

Исследования показали, что плата не зависала, а прекращался обмен по Serial, если включались направления, висящие на 4 и 5 аналоговых входах Arduino.

Помогла выяснить причину смена полярности подключения VSS,GND платы с оптронами к Arduino UNO.

Раньше подключение было: VSS-5.0V, GND-GND.

Теперь подключил наоборот: GND-VSS, 5.0V-GND.

После этой смены значения аналоговых входов A1-A3 стали таки зависеть от сигнала:

Значения же A4,A5 не менялись и не зависели от сигнала.

Вот листинг вывода значений A1-A5, иллюстрирующий ситуацию:

В последних показаниях все направления включены, но выходы A4,A5 показывают иные значения, чем A1-A3.

В первых строчках направления для A4,A5 и направление A1 выключены, но показания A4,A5 постоянны.

Причем причина была не в плате с оптронами, а именно в Arduino — перестановка пина A3 на направления с пинов A4,A5 показывало, что каналы платы с оптронами работают одинаково.

Причем так же вела себя и совсем другая Arduino, что, вероятно, означает что тут я делаю что-то не так, а не Arduino такая.

Решать проблему не стал и обошёлся нормальными входами A0-A3.

В экспериментах я использовал входы A1-A4 для контроля направлений и вход A5 для контроля насоса.

Перенес контроль направлений на входы A0-A3, а от контроля насоса отказался.

Вернул полярность подключения в исходную и при не задействованных A4, A5 все работает нормально.

Источник

Arduino и Rasperry

Arduino и Rasperry

Мониторим состояние сети или Вольтметр-самописец

Сетевое напряжение, один из важнейших показателей качества поставляемой электроэнергии.

Вопрос особо актуален в пригородных поселках и сельской местности. В этом году я тоже столкнулся с данной проблемой, напряжение плавало в течении суток от 120 до 205 вольт, и как на зло при составлении акта с эксплуатирующей сети организацией приборы зафиксировали 200В. что вписывается в пределы ГОСТ 220+-10%.

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

И так к делу -задача непрерывно мониторить напряжение сети в течении определенного промежутка времени и складывать их на SD карту.

Для этого нам потребуются:

  1. Arduino – мозг системы
  2. Модуль часов реального времен 1307RTC и — показания должны быть привязаны к реальному времени
  3. Модуль SD карты — сюда собственно мы и будем писать показания
  4. Ненужный трансформаторный блок питания — согласование сетевого напряжения.

Arduino имеет аналоговые входы с АЦП разрешением 8 бит (1024), но подавать на них можно лишь 5 вольт.

Задачи ясны приступаем к творчеству.

  1. Разбираем блок питания и выкидываем все что стабилизирует выходное напряжение, остаются только трансформатор и выпрямительный мост, замеряем напряжение в сети и на выходе БП, у меня получилось 195 и 6.8 расчитывам делитель напряжения получаем 28,6. Считаем максимально возможное напряжение на выходе при напряжении в сети (с запасом) 260В и получаем 9,1В. Расчитываем делитель напряжения так чтобы на Arduinку поступало максимум 5 вольт под рукой оказались следующие резисторы R1 — 2.2К, R2 — 2К, что вполне устраивает, ожидаемое максимальное напряжение 4,8 вольт .
  2. Калибруем наш новый датчик, для этого цепляем его следующим образом заливаем в ардуинку маленький скетч:

//————————————————————————
void setup()
<
Serial.begin(9600);
>
//————————————————————————
void loop()
<
int analogPin = 0;
Serial.println(analogRead(analogPin));
delay(1000);
>

Включаем датчик в сеть и наблюдаем в мониторе порта обновляющиеся показания, также к сети подключаем образцовый вольтметр. Теперь мы готовы вычислить поправочный коэффициент для будущего скетча,, мои данные: com порт — 669, вольтметр- 187 вольт, итого поделив первое на второе получаем коэффициент 3,58 на 1 вольт.

  • Модуль часов реального времени. Для настройки и работы данного модуля нам понадобятся библиотеки DS1307RTC и Time. Подключаем модуль по следующей схеме
    В примерах от 1307 находим скетч SetTime и загружаем его в Arduino. Открываем монитор com порта и видим что часы синхронизировались с компьютером. Отлично, часы подключены и настроены, дальше они будут идти уже за счет встроенной батарейки.
  • Ну и последний элемент куда мы будем писать свои данные это SD шильд здесь никаких дополнительных настроек не требуется, светодиод на 5 пине будет указывать на наличие ошибок.
  • С железом покончено начинаем программировать
    • Все собрано и залито, наш вольтметр готов
    • Лог файл разобранный в excel

    Мониторим состояние сети или Вольтметр-самописец : 44 комментария

    Привет!
    Прикольная хрень! У меня тоже есть проблемы с сетями (правда трехфазными) Может ли служить датчиком напряжения обычный транс 220-12, если туда просто добавить мост из 4 диодов? Ответь если можно на почту, потом не найду твой сайт….

    Вполне, только делитель напряжения надо пересчитать, ардуино нельзя подавать на вход более 5 вольт.
    Кстати имея 3 таких транса можно с 1 ардуинкой писать сразу 3 фазы и наблюдать их перекосы , разность напряжений и т.д.

    Думаю, делитель беспорно), но можно защитить входную цепь ардуинки если поставить по входу стабилитрон на 5 вольт с резистором… если превысит значение, то стаб сбросит на себя остаток, а если не превысит, то что стаб есть, что его нет — без разницы.

    Интересный прибор))) К сожалению только сейчас нашёл, всё покупное предлагалось(((… А ведь по долгу службы он требовался и не один раз)))

    Подскажите а как записывать значения тока а не напряжения?

    Подключить датчик тока и писать его показания так-же как и напряжение. Все зависит от конкретной задачи

    Для сглаживания нужно использовать конденсатор после диодного моста. Иначе погрешности большие будут.
    И еще использовать транс для этих целей по моему не оправданно(и уж тем более три транса на три фазы).
    Можно поставить диод и кондюк (получим сглаженные «пол фазы»). Перерасчитать плечо делителя и получится дешевле и компактнее.

    С первой частью полностью согласен, у меня они тоже стоят, просто я хотел бы отметить что дополнительных стабилизаторов не нужно.
    А вот отказываться от трансформаторной развязки с высокой стороной я бы не стал, довольно опасно, тем более фактически данные у меня уходят в сеть( в отличии от статьи которая является только отладочным примером), тут и роутер не долго поджарить

    Если поставить конденсатор для сглаживания, то кратковременные броски напряжения не будут восприниматься и фиксироваться прибором. А, они наиболее опасны для аппаратуры, которая после таких бросков может выходить из строя. И доказывать в суде виновность энергетиков будет затруднительно.

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

    Вполне возможно, только при пропадании напряжения ардуино тоже нужно чем-то питать?
    И второе вы вернее всего сможете мониторить только наличие напряжения т.к. в блоке питания стоит стабилизатор и он будет всегда выравнивать напряжение, как расчитать делителья я написал

    Мне это и нужно. а подключать как на первой картинке с делителем напряжения?или как? я просто новичек еще совсем…

    Да лучше сделать делитель, чтобы подавалось 3-4 Вольта не более, во всяком случае напряжение будет не на пределе

    а ардуино независимо хочу запитать или от кроны или от нетбука)))

    ардуино прожорливая игрушка, крона очень быстро сядет, тут надо либо батарейку помощнее либо применять алгоритмы сна, и еще 1 вариант питать ардуино от БП и писать время отключения и включения

    Про писать,я так понял,что на SD карту, хорошая идея))) а можно поподробнее про алгоритмы сна? А крона спокойно подключается, ардуино ничего не грозит?

    Модуль часов реального времен 1307RTC говорят лучше не брать — врёт на 4 минуты в сутки.
    Модуль DS3231 лучше?

    Ну 4 минуты в сутки конечно перебор, в сутки может набегать до нескольких секунд, для данного проекта точность в секундах не очень актуальна.
    DS3231 действительно более точный прибор

    Отличная статья доступно и понятно. Возник вопрос (так как абсолютно не силен в во всем этом) как правильно подобрать конденсатор для сглаживания? Нашел запчасти среди них диодный мост W005M, можно его использовать, подойдет?

    Здравствуйте! Не подскажите как подконнектить блок питания, например к порту А0, чисто чтоб узнать идёт ли от него питание? При этом, чтоб саму адруинку питать от другого блока питания.

    Вариантов 2 либо как в статье мерятт напряжение, либо поставить оптопару и отлавливать наличие сигнала неё.

    Сегодня привезли мегу это мой первый ардуино, спасибо за статью, разобрался за 1 минуту
    вот что получилось:
    ————————————————
    // библиотека для работы с дисплеем
    #include
    // объявляем пин датчика
    int analogPin =0;
    // создаём объект класса UTFT
    // и передаём идентификатор модели дисплея и номера управляющих пинов
    UTFT myGLCD(CTE32HR, 38, 39, 40, 41);
    // объявления встроенного шрифта
    extern uint8_t BigFont[];
    void setup()
    <
    // инициализируем дисплей с вертикальной ориентацией
    myGLCD.InitLCD();
    // очищаем экран
    myGLCD.clrScr();
    // выбираем большой шрифт
    >

    void loop()
    <
    // шрифт
    myGLCD.setFont(BigFont);
    // цвет шрифта
    myGLCD.setColor(0, 200, 0);

    // выводим на экран
    myGLCD.print(«Voltage», 18, 16);
    int sensor = analogRead(analogPin)/2.6;
    myGLCD.print(«v», 194, 16);
    myGLCD.printNumI(sensor, 144, 16);

    Спасибо за комментарий, данный скрипт обязательно кому-нибудь пригодится

    Здравствуйте!
    Не могу найти библиотеку Time.h
    Дайте пожалуйста ссылку

    Здравствуйте!
    Собрал это устройство. Почему во время работы скетча калибровки датчика в мониторе com порта нестабильные показания ( от 200 до 1027). Также нестабильные показания при мониторинге сети, хотя сеть стабильная. Прошу помочь.

    Проверьте напряжение на выходе делителя, 1024 это много, можно входы спалить, при необходимости пересчитайте сопротивления.
    Где-то выше уже писали что на выходе блока питания необходим электролит, он сгладит излишние пульсации

    Спасибо за ответ. Промазал я с электролитом. После установки 1000 мкф все стало отлично, надо только делитель переделать.

    Ни в коем случае так делать нельзя! Только гальваническая развязка, убъёт/пробьёт к едрене фене всё и людей поубивают ваши советы.

    Как так? Питание и так снимается после трансформатора блока питания, а конденсатор только дополнительно сглаживает напряжение после выпрямления. Никто не разу не предлагал снимать напряжение с бестрансформаторного БП. Прочтите внимательно п.1

    Здравствуйте, если делать пишущее устройство на 3 фазы, соединять ещё 2 фазы можно к A0 и GND параллельно? И хотелось бы узнать, что нужно дописать в код? Спасибо

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

    Понятно, спасибо. Назрела необходимость отмониторить напряжение в сети (тестер показывает от 180 до 207). Что бы Вы порекомендовали изменить/усовершенствовать в приведенном выше устройстве на настоящий момент?

    Прекрасная статья, усвоил только две строчки про трансформаторный БП и АЦП, после чего за полчаса скидал приблуду из трансформатора, моста и подстроечника для звуковухи и поставил на запись сигнал аудиоредактором.

    Спасибо за статью! У меня есть микроамперметр, подскажите каким образом можно измерить ток в микроамперметрах или сделать преобразователь? Подскажите пожалуйста если есть какие то идеи

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

    НЕ ПРОЩЕ ПОДКЛЮЧИТЬСЯ К СЧЕТЧИКУ ЭЛЕКТРОЭНЕРГИИ И ПИСАТЬ ПОКАЗАНИЯ С НЕГО? ЭЛЕГАНТНО И БЕЗОПАСНО

    Здравствуйте, кто может предложить такое оборудование? Ардуино+Модуль Часов+модуль SD карты+ПО .

    Присоединяюсь к просьбе Владимира. Готов купить к-т железа уже прошитого.

    Хотел бы то-же узнать возможность покупки комплекта с по.

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

    Мда, как всё старо. Ну получите вы данные и что вы этими данными будите делать? Тыкать сетевиков в их проблемы? Вот если б имели они ЮРИДИЧЕСКУЮ силу. тогда да!! А так сетевики вас пошлют лесом, полем.
    Я так двое суток мониторил гвс. И всё!! больше не надо. Всё повторяется изо дня в день. Суботу и воскресенье выкидываю сразу (это рандомные данные) . Но вот считать и разбирать формулы — хорошая тренировка на проверку головы.

    Во первых проект слишком древний, юридической силы конечно никакой, я в своё время отмониторил и конкретно написал что не нужно ко мне с замерами днём ходить, а вот в такие дни недели ичасы. Кстати успеха добился, приходили 3 раза при пиковых нагрузках и всё-таки устранили неисправности. А до этого только приходили и констатировали что все в норме.

    Источник

    Читайте также:  Симисторный стабилизатор напряжения схема принципиальная
    Adblock
    detector