Опторазвязка 220в ардуино своими руками

Добавил пользователь Дмитрий К.
Обновлено: 05.10.2024

В нашем предыдущем уроке мы рассмотрели работу с фоторезистором для управления LED. Однако, зачастую нужно управлять более мощной нагрузкой, такой как лампа накаливания, электродвигатель, электромагнит и т.п. Выходы Arduino не могут обеспечить питание столь мощной нагрузки и большого напряжения. К примеру в робототехнике, часто используются двигателя на 12В, 24В, 36В и т.п. К тому же выходной ток вывода Arduino ограничен как правило 40 мА.

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

Схема подключения достаточно простая, как вы видите.

Подключение нагрузки к Arduino через мосфет

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

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

В цепь затвора желательно поставить Pull-Down резистор (стягивающий резистор между затвором [gate] и истоком [source]). Он необходим, чтобы гарантированно удерживать низкий уровень на затворе мосфета при отсутствии сигнала высокого уровня от Ардуино. Это исключает самопроизвольное включение транзистора.

В разрыв цепи затвора также рекомендуется ставить резистор номиналом 50-150 Ом, для предотвращения кратковременных выбросов тока и защиты вывода микроконтроллера.

При подборе мосфета, для того, чтобы он напрямую открывался от микроконтроллера и не нужно было ставить перед ним биполярных транзисторов и драйверов, обращайте внимание на параметр Gate Threshold, который должен быть примерно от 1 до 4 Вольт. Часто такие транзисторы помечаются как Logic Level .

Давайте к примеру рассмотрим транзистор: IRL3705N N-Channel Hexfet Power MOSFET.

Данный транзистор способен выдерживать продолжительный ток до 89А (естественно с теплоотводом) и открывается при напряжении затвора 1В (параметр VGS(th)). Поэтому, мы можем напрямую подсоединить данный транзистор к ногам Arduino. Когда транзистор полностью открыт, сопротивление Исток-Сток всего 0.01 Ом (параметр R DS(on) ) . Поэтому, если к нему подключить электрический мотор 12В, 10А на транзисторе падение напряжения будет всего лишь 0.1В, а рассеиваемая мощность 1 Ватт.

Если использовать ШИМ-выход контроллера, мы можем управлять мощностью (а значит и скоростью вращения) мотора.

Вернитесь к 5 уроку , где мы использовали Fade-эффект для светодиода, но вместо светодиода подключите MOSFET и автомобильную лампу на 12 Вольт. Питание лампы должно осуществляться от отдельной 12В батареи или БП.

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

Теоретическая часть и схема

На рисунке показана синусоидальная волна сети с частотой 50 Гц. Для построения диммера важны точки пересечения нуля (точки, где волна меняет свою полярность). Чтобы зафиксировать эти точки, надо использовать детектор пересечения нуля.


Рисунок 1. Сетевая синусоида (зеленые стрелки показывают точки пересечения нуля)

На рисунке далее приведена принципиальная схема всего регулятора мощности переменного тока.


Рисунок 2. Принципиальная схема цифрового диммера переменного тока

Элементы R1, R2, IC1, D1 и C3 создают схему детектора пересечения нуля. Он предназначен для обеспечения надлежащей оптоизоляции сетевого напряжения. Таким образом получаем сигнал, который можно безопасно подключить к входам и выходам Arduino. Далее показан выходной сигнал детектора пересечения нуля (вывод 4 микросхемы IC1). Согласно спецификации TLP521-1 это микросхема состоящая из фототранзистора, оптически связанного с инфракрасным излучающим диодом на основе арсенида галлия. Конечно, можно использовать и другие аналогичные оптопары.


Рисунок 3. Выходной сигнал цепи детектора пересечения нуля

Итак, тут будем использовать импульс пересечения нуля в качестве триггера для главной цепи управления. Это легче понять, просмотрев код Arduino и выходную волну. Радиоэлемент IC3 - тиристор BT138. Нагрузка включена последовательно с тиристором и линией переменного тока, поэтому он определяет количество энергии, которое должно быть подано на нагрузку.

Внимание: монтажное основание BT138, что используется для крепления радиатора, подключено к контакту 2. Вы не должны касаться радиатора или прикручивать его к металлическому корпусу!

Радиодетали R4, R5 и C2 реализуют схему демпфирования для IC2, а C1 и R7 создают схему демпфирования для IC3. Эти детали помогают устройству быть совместимым с различными типами нагрузок, такими как индуктивные. Оптрон IC2 является компонентом обеспечивающим надлежащую гальваническую развязку между цифровой стороной и линией переменного тока 220 В. Выбранный тип - MOC3021. Также можете использовать другие аналогичные, но будьте осторожны, чтобы не использовать детали со встроенным детектором пересечения нуля. Они полезны для переключения нагрузок переменного тока (ВКЛ / ВЫКЛ), а не для диммирования.

Разработка печатной платы

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


Рисунок 5. Расположение деталей печатной платы диммера переменного тока

Все компоненты обычные по размеру. Поэтому будет легко паять и использовать схему в качестве готового модуля. R2, R4, R5 и R7 - резисторы мощностью 1 Вт. Резистор R1 и R6 0,25 Вт. C1 и C2 могут быть выбраны типа MKT или полиэстер, но убедитесь что они имеют номинальное напряжение не менее 400 В. Конденсаторы с номинальным напряжением 250 В тоже в принципе можно брать, но 400 В - это разумный выбор при подстраховке для напряжений конденсаторов. K1 - разъем MKDSN. P1 - традиционный 4-контактный штекерный разъем.

Сборка схемы регулятора

На рисунке показан опытный образец печатной платы. Схема PCB и файл Gerber прилагаются в архиве. Установленный радиатор подходит для тестов. Для долгосрочного использования надо использовать больший по размеру радиатор. Расположение IC3 около границы печатной платы значительно облегчает задачу установки любого радиатора.


Рисунок 6. Первый прототип схемы управления

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

  1. const byte ZCP = 2;
  2. const unsigned int dim = 5000;
  3. void setup()
  4. pinMode(ZCP, INPUT);
  5. pinMode(10, OUTPUT);
  6. digitalWrite(10, LOW);
  7. >
  8. void loop()
  9. if (digitalRead(ZCP) == HIGH)
  10. Zero_Cross();
  11. >
  12. void Zero_Cross()
  13. digitalWrite(10, LOW);
  14. delayMicroseconds(dim);
  15. digitalWrite(10, HIGH);
  16. >

Нет необходимости писать более сложный код для тестирования диммера - этот итак будет работать хорошо. Существует два метода отслеживания импульсов детектора пересечения нуля: опрос и прерывание. В первом варианте было с помощью прерывания, но в некоторых ситуациях сталкивались с мерцанием нагрузки. Мерцание - раздражающая ситуация, которая случается с некоторыми диммерами. Причина в неправильном выборе времени. Как уже упоминалось ранее, точки пересечения нуля очень важны и любой случайный сдвиг времени приведет к нестабильности. Поэтому переключили на метод опроса (строки с 8 по 11).

Практические испытания


Рисунок 7. Проверка нагрузки и необходимых соединений

На рисунке показана форма выходного сигнала (50%). Вы можете усовершенствовать код и добавить две кнопки для увеличения и уменьшения выходной мощности.


Рисунок 8. Форма выходного сигнала в 50% мощности (dim = 5000)

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

Форум по обсуждению материала ДИММЕР ПЕРЕМЕННОГО ТОКА НА АРДУИНО


В каком направлении течет ток - от плюса к минусу или наоборот? Занимательная теория сути электричества.


Микрофоны MEMS - новое качество в записи звука. Подробное описание технологии.


Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.


Приводятся основные сведения о планарных предохранителях, включая их технические характеристики и применение.


Привет всем! Эта статья про то, как собрать и применить диммеры для управления освещением. Схемы самые простые. Предназначены для сети 220 вольт переменного тока, управление — аналоговый сигнал 0-5 вольт (ардуино) или 0-3.3 вольта (esp8266).

1. Диммер для лампы накаливания, на транзисторе:


Q1 — IGBT транзистор IRG4BC30UD (необходим радиатор)
D1 — выпрямительный диод
D2 — диодный мост
Z 10V — диод зенера на 10 вольт
4N25 — оптопара
R 100K и R 10K — резисторы
C 4.7 — конденсатор

Принцип работы: усиление pwm сигнала с ардуино транзистором.

2. Диммер на симисторе, подходит для ламп накала и светодиодных диммируемых ламп:


BT 139 — симистор
MOC 3021 и 4N25 — оптопары
R300, R10K, R50K — резисторы

Принцип работы: INT0 — вход на ардуино (pin2) настроенный на прерывание, на него приходит сигнал перехода фазы через ноль (детектор нуля).
OUT — выход с ардуины (pin3) с которого через задержку приходит сигнал на симистор.

Диммер на базе Arduino – это одно из сотен простых и интересных устройств, с помощью которого можно плавно изменять сетевое напряжение от 0 до номинального значения. Каждый пользователь Arduino найдёт применение столь полезной самоделке, а опыт, полученный во время сборки своими руками, пополнит багаж знаний.

Схема и принцип её работы

схема диммера

Как и большинство недорогих диммеров, данная схема работает за счёт фазовой регулировки напряжения, что достигается путем принудительного открывания силового ключа – симистора. Принцип действия схемы следующий. Arduino на программном уровне формирует импульсы, частота которых подстраивается сопротивлением потенциометра. Управляющий импульс с вывода P1 проходит через оптопару MOC3021 и поступает на управляющий электрод симистора. Он открывается и пропускает ток до перехода полуволны сетевого напряжения через ноль, после чего закрывается. Затем приходит следующий импульс и цикл повторяется. Благодаря сдвигу управляющих импульсов, в нагрузке формируется обрезанная по фронту часть синусоиды.

Чтобы симистор открывался в соответствии с заданным алгоритмом, частота следования импульсов должна быть засинхронизирована с напряжением сети 220 В. Другими словами Arduino должен знать, в какой момент синусоида сетевого напряжения проходит через ноль. Для этого в диммере на элементах R3, R4 и PC814 реализована цепь обратной связи, сигнал с которой поступает на вывод P2 и анализируется микроконтроллером. В цепь детектора нуля добавлен резистор R5 на 10 кОм, который нужен для подпитки выходного транзистора оптопары.

Печатная плата и детали сборки

Диммер на Arduino

Минимум радиоэлементов позволяет сконструировать одностороннюю печатную плату, размер которой не превышает 20х35 мм. Как видно из рисунка на ней отсутствует переменный резистор, чтобы радиолюбитель мог самостоятельно подобрать потенциометр подходящего форм-фактора и определить место его крепления к корпусу готового диммера. Подключение к Arduino осуществляется через провода, которые запаивают в соответствующие отверстия на плате.

Для сборки своими руками диммера, управляемого Arduino, понадобятся следующие радиоэлементы и детали:

  1. Симистор BT136-600D, способный выдерживать обратное напряжение до 600 В и пропускать в нагрузку ток до 4 А (естественно с предварительным монтажом на радиатор). В схеме можно применить симистор и с большей нагрузочной способностью. Главное – обеспечить отвод тепла от его корпуса и правильно подобрать ток на управляющий электрод (справочный параметр). При подключении к нагрузке электроприбора большой мощности ширину печатных проводников в силовой части схемы необходимо будет пересчитать. Как вариант, силовые дорожки можно продублировать с другой стороны платы.
  2. Оптопара MOC3021 с симисторным выходом.
  3. Оптопара PC814 с транзисторным выходом.
  4. Резисторы номиналом 1 кОм, 220 Ом, 10 кОм мощностью 0,25 Вт и 2 резистора на 51 кОм мощностью 0,5 Вт.
  5. Переменный резистор на 10 кОм.
  6. Клеммные колодки – 2 шт., с двумя разъёмами и шагом 5 мм.

Все необходимые файлы по проекту находятся в ZIP-архиве: dimmer-arduino.zip

Алгоритм управления Arduino

Область применения диммера на Arduino

Конечно, использовать дорогостоящий Arduino для управления яркостью галогенных ламп – избыточно. Для этой цели лучше заменить обычный выключатель диммером промышленного изготовления. Диммер на Arduino способен решать более серьёзные задачи:

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

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

Авторство вышеприведенных материалов принадлежит Youtube каналу AlexGyver.

Читайте также: