“Универсальное” электромагнитное реле
Электромагнитное реле является по сути управляемым механическим выключателем: подали на него ток – оно замкнуло контакты, сняли ток – разомкнуло. Контакты являются именно контактами: металлическими “пятаками”, которые прижимаются друг к другу. Именно поэтому такое реле может управлять как нагрузкой постоянного, так и переменного тока.
Сама катушка реле является неслабой индуктивной нагрузкой, что приводит к дополнительным проблемам (читай ниже), поэтому для управления “голым” реле нам понадобится дополнительная силовая и защитная цепь.
После изучения данного урока вы сами сможете её составить (транзистор и диод), а сейчас мы поговорим о модулях реле: готовая плата, на которой стоит само реле, а также цепи коммутации, защиты и даже оптическая развязка. Такие модули бывают “семейными” – с несколькими реле на борту. Спасибо китайцам за это! Смотрите варианты у меня в каталоге ссылок на Али.
Такое реле сделано специально для удобного управления с микроконтроллера: пины питания VCC (Vin, 5V) и GND подключаются к питанию, а далее реле управляется логическим сигналом, поданным на пин IN. С другой стороны стоит клеммник для подключения проводов, обычно контакты подписаны как NO, NC и COM. Это общепринятые названия пинов кнопок, переключателей и реле:
- COM – Common, общий. Реле является переключающим, и пин COM является общим.
- NO – Normal Open, нормально открытый. При неактивном реле данный контакт не соединён с COM. При активации реле он замыкается с COM.
- NC – Normal Closed, нормально закрытый. При неактивном реле данный контакт соединён с COM. При активации реле он размыкается с COM.
Подключение нагрузки через реле думаю для всех является очевидным:
Важный момент: катушка реле в активном режиме потребляет около 60 мА, то есть подключать больше одного модуля реле при питании платы от USB не рекомендуется – уже появятся просадки по напряжению и помехи:
Такие модули реле бывают двух типов: низкого и высокого уровня. Реле низкого уровня переключается при наличии низкого сигнала (GND) на управляющем пине digitalWrite(pin, LOW). Реле высокого уровня соответственно срабатывает от высокого уровня digitalWrite(pin, HIGH). Какого типа вам досталось реле можно определить экспериментально, а можно прочитать на странице товара или на самой плате. Также существуют модули с выбором уровня:
На плате, справа от надписи High/Low trigger есть перемычка, при помощи которой происходит переключение уровня. Электромагнитное реле имеет ряд недостатков перед остальными рассмотренными ниже способами, вы должны их знать и учитывать:
- Ограниченное количество переключений: механический контакт изнашивается, особенно при большой и/или индуктивной нагрузке.
- Противно щёлкает!
- При большой нагрузке реле может “залипнуть”, поэтому для больших токов нужно использовать более мощные реле, которые придётся включать при помощи… маленьких реле. Или транзисторов.
- Необходимы дополнительные цепи для управления реле, так как катушка является индуктивной нагрузкой, и нагрузкой самой по себе слишком большой для пина МК (решается использованием китайского модуля реле).
- Очень большие наводки на всю линию питания при коммутации индуктивной нагрузки.
- Относительно долгое переключение (невозможно поставить детектор нуля, читай ниже), при управлении индуктивными цепями переменного тока можно попасть на большой индуктивный выброс, необходимо ставить искрогасящие цепи.
Важный момент связан с коммутацией светодиодных светильников и ламп, особенно дешёвых: у них прямо на входе стоит конденсатор, который при резком подключении в цепь становится очень мощным потребителем и приводит к скачку тока. Скачок может быть настолько большим, что 15-20 Ваттная светодиодная лампа буквально сваривает контакты реле и оно “залипает”! Данный эффект сильнее выражен на дешёвых лампах, будьте с ними аккуратнее (за инфу спасибо DAK). При помощи реле можно плавно управлять сильно инерционной нагрузкой, такой как большой обогреватель. Для этого нужно использовать сверхнизкочастотный ШИМ сигнал, у меня есть готовая библиотека. Не забываем, что реле противно щёлкает и изнашивается, поэтому для таких целей лучше подходит твердотельное реле, о котором мы поговорим ниже.
Способы регулирования мощности
Соотношение напряжения на входе и выходе определяется числом витков в первичной и вторичной обмотках. Сделав много отводов на вторичной обмотке, можно осуществить ступенчатое регулирование. По такой схеме работают релейные стабилизаторы напряжения.
Плюсов у такой схемы немало. В первую очередь, это ее простота. А также высокий КПД трансформатора, гальваническая развязка входа и выхода, чисто синусоидальная форма выходного тока.
Читать также: Установка насоса с мокрым ротором
Однако, на частоте сети 50 Гц мощные трансформаторы становятся тяжелыми и громоздкими, невозможно плавно регулировать мощность, определенные проблемы возникают при коммутации обмоток.
Другой способ регулирования мощности называется методом фазового регулирования. При этом способе нагрузка подключается к источнику через электронный ключ.
Ключ прерывает цепь питания на определенную долю периода синусоиды переменного тока. Меняя время закрытого состояния ключа, можно регулировать величину мощности, передаваемой в нагрузку и действующее значение напряжения на выходе.
Постоянный ток
Оптопара
Оптопара – отличный элемент, позволяет выполнять две функции: коммутировать нагрузку (пусть и небольшую) и полностью физически развязывает микроконтроллер с ней. Оптопары можно использовать для имитации нажатия кнопок у других внешних устройств, то есть замыкать чисто логический сигнал. Также можно использовать для разрывания питания различных датчиков и модулей в устройстве вместо транзистора. Оптопара состоит из двух частей: светодиод, который мы включаем при помощи микроконтроллера, и выходная часть, которая может быть разной (транзистор, симистор и проч.), таким образом сигнал с микроконтроллера отделяется от нагрузки через луч света, что очень важно при коммутации высоковольтных или каких-то чувствительных цепей. Для управления внешними устройствами надо брать оптопары с транзисторным выходом, например очень распространённую PC814 и её аналоги (FOD814, LTV814 и прочие), при желании можно выковырять почти из любого блока питания. Данная оптопара позволяет коммутировать нагрузку с напряжением до 60 Вольт и током до 50 мА. Покажу вырезку из даташита с этими параметрами, у остальных оптопар параметры будут называться точно так же:
Подключается оптопара следующим способом: светодиодом мы управляем с МК через резистор, а выход подключаем в разрыв нагрузки, соблюдая полярность. Что касается светодиода на управляющем входе оптопары – для него нужен резистор, как считать резистор для светодиода было рассказано в уроке про светодиоды. В большинстве случаев достаточно поставить резистор на 220 Ом, как и для любых светодиодов. Если ток светодиода будет меньше указанного, соответственно уменьшится максимальный ток выхода, что для этой оптопары уже критично (светодиод хочет аж 50 мА). Оптопара не предусмотрена для управления большой нагрузкой, обычно это коммутация других логических цепей, поэтому о токе можно не думать. Подключение нагрузки (условный нагрузочный резистор):
Для управления “кнопкой” другого устройства (фотоаппарат, кофемашина) достаточно подключить оптопару параллельно кнопке. Во избежание замыкания оптопары на кнопку (что сожгёт оптопару) желательно поставить защитный резистор с номиналом 200-1000 Ом. Тут будет две схемы, по сути одинаковые. Перед подключением нужно проверить мультиметром, где у кнопки “плюс”, а где “минус”, так как выход с оптопары у нас полярный.
Существует также интересная оптопара TLP172 с мосфетным выходом, причём неполярным (может коммутировать нагрузку в любую сторону)! Управляет напряжением до 60 Вольт при токе до 400 мА – уже вполне серьёзная игрушка.
Транзистор
Самый компактный способ управлять нагрузкой постоянного тока – транзистор. Транзисторы бывают биполярные и полевые (MOSFET, полевик, ключ). Биполярные уже морально и физически устарели, имеют много характеристик и требуют дополнительного изучения темы, поэтому мы рассмотрим только полевые транзисторы. Схема типовая и выглядит вот так:
Или вот так, конкретно для корпуса to220. Также на этой схеме плата Ардуино питается от внешнего источника в пин Vin:
Полевики бывают и в других корпусах, для подключения по первой принципиальной схеме нужно загуглить распиновку (pinout) на свой конкретный транзистор. Но в основном там всё обстоит вот так:
Что за резисторы?
- Резистор на 100 Ом (можно ставить в диапазоне 100-500 Ом, мощность любая) выполняет защитную функцию: затвор полевика представляет собой конденсатор, в момент открытия затвора конденсатор начнёт заряжаться и в цепи пойдёт большой ток (практически короткое замыкание), который может повредить пин Ардуино. Резистор просто ограничивает ток в цепи пин-затвор и спасает пин от скачков тока. В целом можно его не ставить, но когда-нибудь оно обязательно сломается =)
- Резистор на 10 кОм (можно ставить в диапазоне 5-50 кОм, мощность любая) выполняет подтягивающую функцию для затвора. Если случится так, что плата Ардуино выключена или сигнальный провод от неё отвалился – на затвор будут приходить случайные наводки и он может случайно открыться. Если в этот момент будет подключен источник питания – нагрузка тоже включится! Восстание машин начнётся именно с этого момента. Подтягивающий к GND резистор позволяет “прижать” затвор, чтобы он не открылся сам по себе. Имеет смысл ставить его прямо на корпус транзистора, если монтаж производится навесом:
Я привёл схему, в которой используется N-канальный полевой транзистор, который управляет линией GND. Существуют также P-канальные мосфеты, они управляют линией питания. Такие транзисторы в целом дороже, реже встречаются и имеют высокий порог напряжения открытия, т.е. для их работы придётся ставить ещё один транзистор (биполярный) и с его помощью подавать более высокий сигнал от внешнего источника на затвор P-канального полевика. Поэтому в 99% случаев просто используют более удобные N-канальные ключи. Как выбрать транзистор для своей задачи? Первым делом смотрим на напряжение открытия транзистора (как читать график в даташите – см. видео урок ниже), 100% подойдёт транзистор с пометкой Logic Level в описании или даташите: такие мосфеты точно будут работать на полную катушку от пина МК. Само собой ток и напряжение должны соответствовать (взяты с запасом) для нагрузки, которую будет коммутировать мосфет. Есть ещё параметр сопротивление открытого канала, на этом сопротивлении будет падать напряжение и превращаться в тепло. Для мощных нагрузок нужно рассматривать полевики с низким сопротивлением канала, чтобы сильно не грелись. Приведу свой список мосфетов в двух основных корпусах: выводной to220 и dpack для поверхностного монтажа, в нём “Ток при 3V” и “Ток при 5V” означает максимальный ток через транзистор (на нагрузку) в Амперах при управлении логическим сигналом 3 и 5 Вольт. Максимальное напряжение для нагрузки смотрите у конкретного транзистора, но у всех оно выше 24V. “R” – сопротивление открытого канала в миллиомах (10^-3 Ом). Также полевики отсортированы по увеличению цены в российских магазинах =)
Корпус to220
Маркировка | R, мОм | Ток при 3V | Ток при 5V |
IRLZ24NPBF | 60 | 4 | 20 |
IRF3704ZPBF | 7.9 | 10 | >100 |
IRLB8743PBF | 3.2 | 20 | >100 |
IRL2203NPBF | 7 | 30 | >100 |
IRLB8748PBF | 4.8 | 10 | >100 |
IRL8113PBF | 6 | 40 | >100 |
IRL3803PBF | 6 | 20 | >100 |
IRLB3813PBF | 1.95 | 20 | >100 |
IRL3502PBF | 7 | >100 | >100 |
IRL2505PBF | 8 | 20 | >100 |
IRF3711PBF | 6 | 80 | >100 |
IRL3713PBF | 3 | 20 | >100 |
IRF3709ZPBF | 6.3 | 40 | >100 |
AUIRL3705N | 6.5 | 20 | >100 |
IRLB3034PBF | 1.7 | >100 | >100 |
IRF3711ZPBF | 6 | 20 | >100 |
Корпус dpak
Маркировка | R, мОм | Ток при 3V | Ток при 5V |
STD17NF03LT4 | 50 | 5 | 40 |
IRLR024NPBF | 65 | 4 | 20 |
IRLR024NPBF | 40 | 5 | 40 |
IRLR8726PBF | 6 | 10 | 110 |
IRFR1205PBF | 27 | – | 10 |
IRFR4105PBF | 45 | – | 10 |
IRLR7807ZPBF | 12 | 10 | 100 |
IRFR024NPBF | 75 | – | 8 |
IRLR7821TRPBF | 10 | 11 | 100 |
STD60N3LH5 | 8 | 30 | 160 |
IRLR3103TRPBF | 19 | 11 | 100 |
IRLR8113TRPBF | 6 | 40 | 110 |
IRLR8256PBF | 6 | 10 | 110 |
IRLR2905ZPBF | 13 | – | 100 |
IRLR2905PBF | 27 | 20 | 90 |
Для слаботочных цепей мне нравится использовать полевик 2n7000 (купить мешок) – тянет до 400 мА. Корпус – компактный выводной to-92. Также у друзей-китайцев есть удобные готовые модули с мосфетами и всей необходимой обвязкой:
Ну и самый важный момент: на полевой транзистор можно подавать ШИМ сигнал для “плавного” управления нагрузкой: плавно менять скорость вращения мотора, яркость светодиодной ленты, мощность обогревателя и прочее прочее!
Внимание! При управлении индуктивной нагрузкой (клапан, мотор, электромагнит, соленоид) обязательно нужен диод! См. последнюю главу.
Твердотельное реле (SSR DC)
Более простой вариант – твердотельное реле (Solid State Relay, SSR) для постоянного тока (DC), найти можно на том же Aliexpress по запросу SSR DC. Внимательно смотрим на маркировку: под выходными клеммами должно быть написано VDC, т.е. постоянное напряжение. Твердотельное реле имеет стандартный корпус для моделей постоянного и переменного тока, поэтому нужно читать что написано и не перепутать. Также в маркировке после слова SSR обычно указан ток в Амперах, т.е. SSR-25 это реле на 25 Ампер. Максимальное напряжение указано под выходными клеммами.
Твердотельное реле подключается напрямую к Arduino, пин “-” к GND, “+” к любому цифровому пину. Выход реле ставится в разрыв цепи питания нагрузки, как выключатель. Важно не перепутать плюс и минус, потому что внутри реле представляет собой полевой транзистор на радиаторе =)
Внимание! При управлении индуктивной нагрузкой (клапан, мотор, электромагнит, соленоид) обязательно нужен диод! См. последнюю главу.
Перейдем к тиристорам
Тиристоры — это штуки, которые очень напоминают электронные ключи, однако у них нет закрытого состояния? Как? А вот так! У них немного другое предназначение. По сути, это 2 транзистора, которые управляют мощностью нагрузки с помощью очень слабого сигнала. Обычные тиристоры состоят из 3 деталей — катода, управляющего электрода и анода.
Тиристор
Виды тиристоров
Давайте теперь узнаем, какие тиристоры существуют в природе и какие из них будут интересны нам в первую очередь:
- динисторы (тиристоры, у которых всего 2 вывода — анод и катод)
- триодный тиристор (с 3 выводами)
- тетроидный тиристор (с 4 выводами)
- симистор или симметричный тиристор (именно его мы сегодня изучим доскосконально)
Переменный ток
Симистор как вкл/выкл
Симистор – радиоэлемент, похожий на транзистор, но может работать на переменном токе. Высокое напряжение – штука опасная, поэтому для управления симистором используется оптопара с симисторным выходом. Простейшая схема подключения выглядит вот так:
Для управления нагрузкой только в режиме вкл/выкл желательно ставить оптопару с детектором нуля (например MOC306x), она будет сама отключать и включать нагрузку только в моменты перехода напряжения в сети через 0, что сильно уменьшает помехи в сети. Также здесь стоят резисторы: 220 Ом – для ограничения тока на светодиод оптопары (смотри характеристики оптопары, как подбирать резистор я писал выше). И резистор между оптопарой и симистором: 220-470 Ом с мощностью 1-2 Вт (будет греться). Симистор нужно брать с хорошим запасом по току, чтобы меньше грелся. Также симисторы бывают серии BTA и BTB, у BTA корпус (металлическая часть) изолирован и рекомендуется брать именно их, чтобы не шарахало током от радиатора. Распиновка компонентов:
У китайцев есть готовые модули с симистором и всей обвязкой. Кстати да, симистор греется под нагрузкой! Наличие радиатора обязательно, начиная с 200 Ватт.
Симистор как диммер
Для плавного управления нагрузкой переменного тока задача сильно усложняется: нужно ловить момент переключения напряжения, засекать время и выключать симистор, отсекая часть синусоиды, это называется фазовым управлением.
Для этой схемы нужна оптопара без детектора нуля, например серии MOC302x. Схема такой поделки может выглядеть вот так:
Резисторы 51к обязательно мощные, так как на них будет выделяться 1 Ватт: гасим лишнее напряжение, чтобы не сжечь светодиод оптопары детектора нуля. Также готовый модуль можно купить на Али. Выглядит он вот так и имеет пины питания, пин контроля симистора и вывод детектора нуля. Как со всем этим работать – смотрите видос ниже:
Где-то существует китайская библиотека для управления таким модулем, но она мне не очень понравилась. Привожу два примера для ручного управления таким диммером на базе библиотеки GyverTimers: одноканальный и многоканальный. В многоканальном режиме достаточно подключить к Ардуино выход детектора нуля только с одного модуля, а вот управляющие пины уже указать в скетче. Рассмотренные ниже примеры можно чуть оптимизировать, заменив digitalWrite() на быстрый аналог.
Одноканальный НЕ плавный
// пример диммера на симисторе с внешним детектором нуля // или готовый китайский модуль https://ali.ski/yGU73N // одноканальный диммер без таймера, работает на пропуске // полуволн синусоиды по прерываниям с детектора нуля // подходит для моторов и обогревателей, лампы мерцают жутко! // Алгоритм Брезенхема https://habr.com/ru/post/254719/ // диммер принимает значения 0-255 // переключения оптимизированы #define ZERO_PIN 2 // пин детектора нуля #define INT_NUM 0 // соответствующий ему номер прерывания #define DIMMER_PIN 4 // управляющий пин симистора int dimmer; // переменная диммера void setup() { pinMode(ZERO_PIN, INPUT_PULLUP); pinMode(DIMMER_PIN, OUTPUT); digitalWrite(DIMMER_PIN, LOW); attachInterrupt(INT_NUM, isr, FALLING); // для самодельной схемы ставь RISING! } void loop() { // задаём значение 0-255 dimmer = map(analogRead(A0), 0, 1023, 0, 255); delay(100); // в реальном коде задержек быть не должно } // прерывание детектора нуля void isr() { static byte count, last, lastVal; int val = ((uint16_t)++count * dimmer) >> 8; if (lastVal != (val != last)) digitalWrite(DIMMER_PIN, val != last); lastVal = (val != last); last = val; }
Многоканальный НЕ плавный
// пример диммера на симисторе с внешним детектором нуля // или готовый китайский модуль https://ali.ski/yGU73N // многоканальный диммер без таймера, работает на пропуске // полуволн синусоиды по прерываниям с детектора нуля // подходит для моторов и обогревателей, лампы мерцают жутко! // Алгоритм Брезенхема https://habr.com/ru/post/254719/ // диммер принимает значения 0-255 // включения выключения оптимизированы #define ZERO_PIN 2 // пин детектора нуля #define INT_NUM 0 // соответствующий ему номер прерывания #define DIM_AMOUNT 3 // количество диммеров const byte dimPins[] = {3, 4, 5}; // их пины int dimmer[DIM_AMOUNT]; // переменная диммеров void setup() { pinMode(ZERO_PIN, INPUT_PULLUP); for (byte i = 0; i < DIM_AMOUNT; i++) pinMode(dimPins, OUTPUT); attachInterrupt(INT_NUM, isr, FALLING); // для самодельной схемы ставь RISING! } void loop() { // задаём значение 0-255 dimmer[0] = 50; dimmer[1] = 120; dimmer[2] = 190; delay(100); // в реальном коде задержек быть не должно } // прерывание детектора нуля void isr() { static byte count, last[DIM_AMOUNT], lastState[DIM_AMOUNT]; count++; for (byte i = 0; i < DIM_AMOUNT; i++) { int val = ((uint16_t)++count * dimmer) >> 8; if (lastState != (val != last)) digitalWrite(dimPins, val != last); lastState = (val != last); last = val; } }
Одноканальный плавный
// пример диммера на симисторе с внешним детектором нуля // или готовый китайский модуль https://ali.ski/yGU73N // используется библиотека GyverTimers (минимум версия 1.5) // по аналогии можно сделать диммер на любом таймере ардуино // в том числе любом из 6-ти таймеров для Mega // вызов setPeriod оптимизирован #define ZERO_PIN 2 // пин детектора нуля #define INT_NUM 0 // соответствующий ему номер прерывания #define DIMMER_PIN 4 // управляющий пин симистора #include // библиотека таймера int dimmer; // переменная диммера void setup() { pinMode(ZERO_PIN, INPUT_PULLUP); pinMode(DIMMER_PIN, OUTPUT); attachInterrupt(INT_NUM, isr, RISING); // для самодельной схемы ставь FALLING Timer2.enableISR(); } void loop() { // задаём значение 500-9300, где 500 максимум мощности, 9300 минимум!!! // и 500-7600 для 60 Гц в сети dimmer = map(analogRead(A0), 0, 1024, 500, 9300); delay(100); // в реальном коде задержек быть не должно } // прерывание детектора нуля void isr() { static int lastDim; digitalWrite(DIMMER_PIN, 0); // выключаем симистор // если значение изменилось, устанавливаем новый период // если нет, то просто перезапускаем со старым if (lastDim != dimmer) Timer2.setPeriod(lastDim = dimmer); else Timer2.restart(); } // прерывание таймера ISR(TIMER2_A) { digitalWrite(DIMMER_PIN, 1); // включаем симистор Timer2.stop(); // останавливаем таймер }
Многоканальный плавный
// пример диммера на симисторе с внешним детектором нуля // или готовый китайский модуль https://ali.ski/yGU73N // используется библиотека GyverTimers (минимум версия 1.5) // по аналогии можно сделать диммер на любом таймере ардуино // в том числе любом из 6-ти таймеров для Mega // многоканальный диммер. Тут пример с разрешением 256 (значения 0-255) #define ZERO_PIN 2 // пин детектора нуля #define INT_NUM 0 // соответствующий ему номер прерывания #define DIM_AMOUNT 3 // количество диммеров const byte dimPins[] = {3, 4, 5}; // их пины #include // библиотека таймера int dimmer[DIM_AMOUNT]; // переменная диммера volatile int counter = 0; // счётчик цикла void setup() { pinMode(ZERO_PIN, INPUT_PULLUP); for (byte i = 0; i < DIM_AMOUNT; i++) pinMode(dimPins, OUTPUT); attachInterrupt(INT_NUM, isr, FALLING); // для самодельной схемы ставь RISING Timer2.enableISR(); // 37 мкс — период прерываний для 255 шагов и 50 Гц // для 60 Гц ставь число 31 Timer2.setPeriod(37); Serial.begin(9600); } void loop() { // задаём значение //dimmer[0] = map(analogRead(A0), 0, 1023, 0, 9500); dimmer[0] = 50; dimmer[1] = 120; dimmer[2] = 190; delay(100); // в реальном коде задержек быть не должно } // прерывание детектора нуля void isr() { counter = 255; Timer2.restart(); } // прерывание таймера ISR(TIMER2_A) { for (byte i = 0; i < DIM_AMOUNT; i++) { if (counter == dimmer) digitalWrite(dimPins, 1); // на текущем тике включаем else if (counter == dimmer — 1) digitalWrite(dimPins, 0); // на следующем выключаем } counter—; }
Обновление! Я обернул эти алгоритмы в класс, библиотека GyverDimmer. Описание и примеры смотри на GitHub.
Твердотельное реле (SSR AC)
Твердотельное реле для переменного тока (купить SSR AC) выглядит и подключается точно так же, как твердотельное для постоянного. Единственное отличие в том, что нет полярности:
По сравнению с электромагнитным реле работает бесшумно, а также имеет неограниченный ресурс переключений. Но есть и минус: твердотельные реле основаны на полупроводниковых симисторах и греются под нагрузкой. Нижняя часть корпуса представляет собой толстую алюминиевую пластину. При большой нагрузке (несколько киловатт) желательно брать SSR с хорошим запасом по току и/или крепить на радиатор. Вот такие дела. Также существуют твердотелки чуть другого формата в виде Ардуино-модулей:
Такие модули бывают низкого и высокого уровня (High/Low level trigger), подключаются точно так же как модули реле: к питанию GND-VCC и отдельно пин на управление. Сами SSRки здесь стоят маленькие и слабые: всего 2А (в районе 500 Ватт). Но для управления например освещением этого более чем достаточно. При помощи реле можно плавно управлять сильно инерционной нагрузкой, такой как большой обогреватель. Для этого нужно использовать сверхнизкочастотный ШИМ сигнал, у меня есть готовая библиотека.
Комбинированный способ
Электромагнитное реле и симистор (твердотельное реле) имеют недостатки при работе с большими токами, которые взаимно устраняются:
- Электромагнитное реле плохо работает в момент замыкания и размыкания нагрузки, потому что физически изнашиваются контакты и вообще могут залипнуть. В то же время оно не греется в процессе протекания большого тока.
- Симистор без проблем, искр и износа замыкает мощную цепь, но сильно греется во время протекания тока.
Существует отличная идея комбинирования этих двух устройств для коммутации мощных цепей: симистор (или SSR) ставится параллельно электромагнитному реле. Сначала цепь замыкается симистором, затем через несколько миллисекунд замыкается реле. Всё, симистор можно отключать, ток будет идти через реле. Для отключения нагрузки снова активируем симистор, отключаем ЭМ реле, и через несколько миллисекунд выключаем симистр. Бинго! Если коммутацией управляет микроконтроллер, реализовать такую схему – как два пина обозвать =) Про реализацию аналоговой схемы (без МК) можно почитать на Хабре.
Плавное управление (SSR LA)
Есть ещё один вариант плавного управления нагрузкой переменного тока: твердотельное реле со встроенным фазовым управлением и токовым входом, называется оно SSR LA. Нужно брать реле, у которого входное сопротивление в районе 250 Ом, чтобы можно было подавать на него 0-5 Вольт и получить заветные 0-20 мА. Я брал вот такие, работают отлично. Чтобы подать с Arduino 0-5 Вольт нам понадобится ШИМ и RC цепь (ссылка на проект симуляции в EasyEDA), на схеме это будет выглядеть вот так:
// Простой пример, в котором также подключен потенциометр на A0 void setup() { pinMode(3, OUTPUT); // https://alexgyver.ru/lessons/pwm-overclock/ // Пины D3 и D11 — 8 кГц TCCR2B = 0b00000010; // x8 TCCR2A = 0b00000011; // fast pwm } void loop() { analogWrite(3, analogRead(0) / 4); delay(10); }
Как проверить симистор?
Поговорив о положительных и отрицательных моментах симистора, мы плавно подвели наше с вами изучение симисторов к очень важному аспекту, а именно — к проверке. Вы можете сказать? Что это еще за проверка. Наверняка это что-то бесполезное. А мы вам ответим, что проверять симисторы — это очень важно, ведь на нем по сути держится весь электроприбор, и выявив брак или неисправность хотя бы в одном симисторе из партии, у вас есть шанс спасти целые электроприборы от серьезных поломок. Но и здесь новички задают вопрос.
А на фабриках, где изготавливают эти симисторы разве их не проверяют. Вопрос этот очень интересен, но ответ тоже довольно прост. На заводах нет времени на проверку каждого отдельного симистора, поэтому от силы проверке может подвергаться один прибор из партии. Поэтому давайте теперь уже поговорим о том, как же все-таки можно проверить на исправность этот замечательный прибор.
Существует сразу несколько эффективных способов проверки симистора. Давайте подробно разберемся с каждым из них. Для начала сразу скажем, что проверять симистор внутри схемы — это совершенно неверное действие. Вам сначала обязательно нужно извлечь его из платы, а потом уже работать с ним. Почему?
Тут все очень просто. Если вы будете проверять свой симистор и при этом он будет внутри схемы, то вы можете проверить его и он будет неисправен, но на самом деле будет неисправен соседний элемент, подключенный к нему параллельно. Поэтому нужно исключить все факторы, отключив симистор от схемы, выпаяв его. Отметим, что проверять нужно будет каждый отдельный элемент, иначе вы не сможете найти причину поломки. Сначала, как правило, проверяют силовые цепи, потом уже переходят к ключам, сделанным из полупроводниковых материалов. Как же можно проверить полупроводниковые ключи:
- проверка мультиметром (например прозвонкой или омметром). Это работает по следующему принципу: используем мультиметр в режиме измерения сопротивления Контактами присоединяем к нашему симистору, а затем смотрим полученные измерения. Дело в том, что у исправного симистора значение на омметре должно быть большим или очень большим.
Вот так выглядит мультиметр - проверка батарейкой в паре с лампочкой. На первый взгляд такая идея может показаться глупой и нерациональной, но на деле же это не так. Давайте узнаем, как это работает. Тут все немного сложнее, но все по порядку. Для начала нам нужно будет подсоединить лампочку одним контактом к катоду (условному) нашего симистора. Далее второй контакт лампочки подключается к “отрицательной” стороне батарейки. Останется только присоединить “плюсовой” конец к аноду. Если лампочка горит нормально, то значит и симистор полностью рабочий.
Защита от помех DC
Раздельное питание
Один из лучших способов защититься от помех по питанию – питать силовую и логическую части от отдельных источников питания: хороший малошумящий источник питания на микроконтроллер и модули/сенсоры, и отдельный на силовую часть. В автономных устройствах иногда ставят отдельный аккумулятор на питание логики, и отдельный мощный – на силовую часть, потому что стабильность и надёжность работы очень важна.
Искрогасящие цепи DC
При размыкании контактов в цепи питания индуктивной нагрузки происходит так называемый индуктивный выброс, который резко подбрасывает напряжение в цепи вплоть до того, что между контактами реле или выключателя может проскочить электрическая дуга (искра). В дуге нет ничего хорошего – она выжигает частички металла контактов, из за чего они изнашиваются и со временем приходят в негодность. Также такой скачок в цепи провоцирует электромагнитный выброс, который может навести в электронном устройстве сильные помехи и привести к сбоям или даже поломке! Самое опасное, что индуктивной нагрузкой может являться сам провод: вы наверняка видели, как искрит обычный выключатель света в комнате. Лампочка – не индуктивная нагрузка, но идущий к ней провод имеет индуктивность. Для защиты от выбросов ЭДС самоиндукции в цепи постоянного тока используют обыкновенный диод, установленный встречно-параллельно нагрузке и максимально близко к ней. Диод просто закоротит на себя выброс, и все дела:
Где VD – защитный диод, U1 – выключатель (транзистор, реле), а R и L схематично олицетворяют индуктивную нагрузку. Диод нужно ОБЯЗАТЕЛЬНО ставить при управлении индуктивной нагрузкой (электромотор, соленоид, клапан, электромагнит, катушка реле) при помощи транзистора, то есть вот так:
При управлении ШИМ сигналом рекомендуется ставить быстродействующие диоды (например серии 1N49xx) или диоды Шоттки (например серии 1N58xx), максимальный ток диода должен быть больше или равен максимальному току нагрузки.
Фильтры
Если силовая часть питается от одного источника с микроконтроллером, то помехи по питанию неизбежны. Простейший способ защитить МК от таких помех – конденсаторы по питанию как можно ближе к МК: электролит 6.3V 470 uF (мкФ) и керамический на 0.1-1 мкФ, они сгладят короткие просадки напряжения. Кстати, электролит с низким ESR справится с такой задачей максимально качественно.
Ещё лучше с фильтрацией помех справится LC фильтр, состоящий из индуктивности и конденсатора. Индуктивность нужно брать с номиналом в районе 100-300 мкГн и с током насыщения больше, чем ток нагрузки после фильтра. Конденсатор – электролит с ёмкостью 100-1000 uF в зависимости опять же от тока потребления нагрузки после фильтра. Подключается вот так, чем ближе к нагрузке – тем лучше:
Подробнее о расчёте фильтров можно почитать здесь.
Оптосимистор — удобный метод управления мощным симистором микроконтроллером
Так как симистор проводит ток в обоих направлениях, то по отношению к его основным терминалам, управляющий ток может находится в четырёх квадратах.
Можно это также представить в виде таблицы:
В datasheet приводят, в каких квадрантах управляется конкретный симистор и какой для этого нужен ток. Например, выбранный симистор управляется во всех 4-х квадрантах. Но при этом различается управляющий ток и защитные свойства от ложных срабатываний.
Видно, что 4-ый квадрант самый невыгодный. Управляющий ток резко возрастает. Также и защитные свойства при таком управлении падают.
Отсюда следует вывод, что при управлении микроконтроллером лучше управлять в 1-3 квадранте.
Если управление прямое, то МК необходимо уметь менять полярность вывода, что сложно, или иметь общее с терминалом A1 плюсовое питание (управление будет во втором и третьем квадранте). Второй вариант не сложно реализовать при конденсаторном источнике питания. В этом appnote AN2986 подробно рассматривается этот случай.
Второй вариант — управлять через оптосимистор. Таких устройств довольно много и они стоят недорого. Например — MOC3041. Есть оптосимисторы со встроенной схемой контроля перехода через ноль, они могут выключаться только около нуля. Такой нам и нужен для схемы управления полными периодами. А есть без этой схемы. С их помощью можно управлять фазовым методом.
Схема управления с использование оптосимистора получается такая:
само устройство внутри выглядит так:
Управление в этом случае получается одной полярности с терминалом A2, то есть в первом и третьем квадранте.
Дополнительно оптосимистор изолирует схему работы микроконтроллера от сети, что уменьшает помехи, и повышает надёжность прибора. Если нет требований к компактности прибора, то рекомендуем использовать оптосимисторы для управления другими более мощными симисторами.
Защита от помех AC
Момент выключения
Напряжение в сети является синусоидой, которая 100 раз в секунду пересекает значение 0. Если выключить нагрузку в тот момент, когда напряжение в сети равно нулю – это сильно уменьшит выброс. Для этих целей проще всего использовать твердотельные реле (SSR) с детектором нуля (Zero-Crossing Detector): такие реле сами отключают и включают нагрузку в нужный момент. Детектор нуля есть почти во всех моделях SSR, но лучше уточнить в документации. Для самодельных симисторных ключей, работающих в режиме вкл/выкл (без диммирования) рекомендуется ставить управляющую оптопару с детектором нуля: она тоже будет включать и выключать нагрузку в лучший для этого момент, то есть в ближайшем нуле.
Искрогасящие цепи AC
Выбросы ЭДС после отключения нагрузки присутствуют также и в цепях переменного тока, особенно если нагрузка может быть выключена в случайный момент времени. Выброс напряжения может проявляться искрой между контактами в момент отключения нагрузки, что плохо для контактов и опасно в целом. Для гашения этих выбросов используются снабберные цепи из резистора и конденсатора. Теорию по расчёту искрогасящих цепей для переменного тока можно посмотреть вот в этой статье, а для большинства применений подойдёт резистор 39 Ом 0.5 Вт и конденсатор 0.1 мкФ 400V, установленные вот по такой схеме:
Также обратите внимание на то, что в некоторых твердотельных реле уже стоит снабберная цепь, об этом можно узнать из даташита на конкретную модель. На самодельный симисторный диммер такую цепь желательно не лениться и всё таки ставить, чтобы уменьшить помехи в сети.
Управляем нагрузкой 220В с регулировкой мощности
Хотелось бы иметь возможность регулировать мощность, подаваемую на управляемый прибор в диапазоне от 0 до 100%. Вот эту задачу и будем решать.
Как известно бытовая электросеть имеет переменное напряжение 220В с частотой 50 Гц. На осциллограмме это выглядит так:
Напряжение меняется по синусоиде, меняя полярность каждые 10 мс. Ограничить полную мощность синусоиды можно двумя методами:
- фазовый метод
- метод полных полупериодов
В фазовом методе нагрузка отключается от сети на часть времени каждого полупериода, отключение производится обычно после перехода через 0. Напряжение подаваемое на нагрузку в этом случае выглядит так:
Во втором методе, полных периодов или полупериодов, нагрузка отключается на целое количество периодов:
Например это может выглядеть так, в случае с полупериодами. При таком управлении важно следить за тем, чтобы средний ток был равен нулю.
Рассмотрим подробнее как управлять нагрузкой методом полных периодов. Он обеспечивает меньшие помехи на сеть 220В, так как ток и напряжение в нагрузке нарастают синхронно и дают меньшие выбросы в сеть.
Важные страницы
- Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
- Поддержать автора за работу над уроками
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])
4.8 / 5 ( 25 голосов )
Принцип работы тиристорного ключа
Для работы в режиме фазного регулирования надо открыть ключ с некоторой задержкой относительно начала полупериода и оставить его в открытом состоянии до конца полуволны, когда ток будет переходить через 0.
Для этой цели как нельзя лучше подходят приборы из семейства тиристоров.
Тиристор очень похож на биполярный транзистор. У него тоже три электрода: анод, катод и база. Он также управляется базовым током. Но в отличие от биполярного транзистора, тиристор сохраняет открытое состояние и после снятия управляющего сигнала до того момента, пока ток через него не снизится практически до нуля. Это и нужно для реализации схемы фазового регулирования.