Как подключить оптопару к микроконтроллеру
В качестве примера для этого урока по реле Arduino мы будем использовать 2-канальный релейный модуль HL-52S, который имеет 2 реле с номиналами 10 А при 250 и 125 В переменного тока и 10 А при 30 и 28 В постоянного тока. Выходной разъем высокого напряжения имеет 3 контакта, средний является общим контактом, и, как видно из маркировки, один из двух других контактов предназначен для нормально разомкнутого соединения, а другой — для нормально замкнутого соединения.
На одной из сторон модуля у нас есть 2 набора контактов. Первый имеет 4 контакта, заземление и контакт VCC для питания модуля и 2 входных контакта In1 и In2. Второй набор контактов имеет 3 контакта с перемычкой между JDVcc и контактом Vcc.
Управляем нагрузкой 220В с регулировкой мощности
Хотелось бы иметь возможность регулировать мощность, подаваемую на управляемый прибор в диапазоне от 0 до 100%. Вот эту задачу и будем решать.
Как известно бытовая электросеть имеет переменное напряжение 220В с частотой 50 Гц. На осциллограмме это выглядит так:
Напряжение меняется по синусоиде, меняя полярность каждые 10 мс. Ограничить полную мощность синусоиды можно двумя методами:
метод полных полупериодов
В фазовом методе нагрузка отключается от сети на часть времени каждого полупериода, отключение производится обычно после перехода через 0. Напряжение подаваемое на нагрузку в этом случае выглядит так:
Во втором методе, полных периодов или полупериодов, нагрузка отключается на целое количество периодов:
Например это может выглядеть так, в случае с полупериодами. При таком управлении важно следить за тем, чтобы средний ток был равен нулю.
Рассмотрим подробнее как управлять нагрузкой методом полных периодов. Он обеспечивает меньшие помехи на сеть 220В, так как ток и напряжение в нагрузке нарастают синхронно и дают меньшие выбросы в сеть.
База знаний по трехмерному проектированию в Pro/Engineer, Creo, Solidworks, электронике на STM32
Обучение STM32. Подключаем к микроконтроллеру STM32 бесконтактный индуктивный датчик.
В этом уроке по микроконтроллеру STM32 вы научитесь:
- подключать индуктивный датчик
- конфигурировать порты на вход в CubeMX
- включить прерывание по сигналу с порта
Что такое бесконтактный индуктивный датчик
Подключение индуктивного датчика
Настройка внешнего прерывания по входному сигналу в CubeMX
Остальные настройки оставим без изменений и сгенерируем код, например для KEIL. В папке Src появился основной файл main.c, вспомогательный файл конфигурирования периферии stm32f1xx_hal_msp.c и файл прерываний stm32f1xx_it.c.
Включение-выключение светодиода по внешнему сигналу от индуктивного датчика
Зайдем в файл прерываний stm32f1xx_it.c и в функции обработки прерываний линии 0 запишем наш код между строчками /* USER CODE BEGIN EXTI0_IRQn 0 */ и /* USER CODE END EXTI0_IRQn 0 */ для сохранения пользовательского кода при перегенерации проекта из CubeMX .
Р езультатом работы будет включение или отключение синего светодиода после приближения металлического предмета к активной области индуктивного датчика.
Наиболее действенный программный алгоритм защиты от помех представлен ниже. Но этот код лучше выполнять в основной программе, а не в прерывании и лучше всего о отдельном потоке. Т.е. настроить порт PC0 не на внешнее прерывание, а на простой вход.
Р езультатом работы будет включение синего светодиода после приближения металлического предмета к активной области индуктивного датчика и отключение светодиода при отдалении металлического предмета.
Здесь реализована бесконечная проверка на заполнение массива единицами. Если он весь заполняется единицами, это значит датчик сработал и металл находится вблизи него некоторое время. Массив можно сделать любого размера, но чем больше размер, тем больше должен находится металл около датчика. Это все проверяется экспериметальным путем. При массиве уже из 5 элементов этот алгоритм обеспечивает более-менее хорошую помехозащищенность даже при постоянном дребезге контактов при подключении проводников от датчика.
Код проекта доступен по кнопке Скачать пример для всех пользователей.
Гальваническая развязка. Кто, если не оптрон?
Есть в электронике такое понятие как гальваническая развязка. Её классическое определение — передача энергии или сигнала между электрическими цепями без электрического контакта. Если вы новичок, то эта формулировка покажется очень общей и даже загадочной. Если же вы имеете инженерный опыт или просто хорошо помните физику, то скорее всего уже подумали про трансформаторы и оптроны.
Статья под катом посвящена различным способам гальванической развязки цифровых сигналов. Расскажем зачем оно вообще нужно и как производители реализуют изоляционный барьер «внутри» современных микросхем.
Речь, как уже сказано, пойдет о изоляции цифровых сигналов. Далее по тексту под гальванической развязкой будем понимать передачу информационного сигнала между двумя независимыми электрическими цепями.
Зачем оно нужно
Существует три основные задачи, которые решаются развязкой цифрового сигнала.
Первой приходит в голову защита от высоких напряжений. Действительно, обеспечение гальванической развязки — это требование, которое предъявляет техника безопасности к большинству электроприборов.
Пусть микроконтроллер, который имеет, естественно, небольшое напряжение питания, задает управляющие сигналы для силового транзистора или другого устройства высокого напряжения. Это более чем распространенная задача. Если между драйвером, который увеличивает управляющий сигнал по мощности и напряжению, и управляющим устройством не окажется изоляции, то микроконтроллер рискует попросту сгореть. К тому же, с цепями управления как правило связаны устройства ввода-вывода, а значит и человек, нажимающий кнопку «включить», легко может замкнуть цепь и получить удар в несколько сотен вольт.
Итак, гальваническая развязка сигнала служит для защиты человека и техники.
Не менее популярным является использование микросхем с изоляционным барьером для сопряжения электрических цепей с разными напряжениями питания. Тут всё просто: «электрической связи» между цепями нет, поэтому сигнал логические уровни информационного сигнала на входе и выходе микросхемы будут соответствовать питанию на «входной» и «выходной» цепях соответственно.
Гальваническая развязка также используется для повышения помехоустойчивости систем. Одним из основных источников помех в радиоэлектронной аппаратуре является так называемый общий провод, часто это корпус устройства. При передаче информации без гальванической развязки общий провод обеспечивает необходимый для передачи информационного сигнала общий потенциал передатчика и приемника. Поскольку обычно общий провод служит одним из полюсов питания, подключение к нему разных электронных устройств, в особенности силовых, приводит к возникновению кратковременных импульсных помех. Они исключаются при замене «электрического соединения» на соединение через изоляционный барьер.
Как оно работает
Традиционно гальваническая развязка строится на двух элементах — трансформаторах и оптронах. Если опустить детали, то первые применяются для аналоговых сигналов, а вторые — для цифровых. Мы рассматриваем только второй случай, поэтому имеет смысл напомнить читателю о том кто такой оптрон.
Для передачи сигнала без электрического контакта используется пара из излучателя света (чаще всего светодиод) и фотодетектора. Электрический сигнал на входе преобразуется в «световые импульсы», проходит через светопропускающий слой, принимается фотодетектором и обратно преобразуется в электрический сигнал.
Оптронная развязка заслужила огромную популярность и несколько десятилетий являлась единственной технологией развязки цифровых сигналов. Однако, с развитием полупроводниковой промышленности, с интеграцией всего и вся, появились микросхемы, реализующие изоляционный барьер за счет других, более современных технологий.
Цифровые изоляторы — это микросхемы, обеспечивающие один или несколько изолированных каналов, каждый из которых «обгоняет» оптрон по скорости и точности передачи сигнала, по уровню устойчивости к помехам и, чаще всего, по стоимости в пересчете на канал.
Изоляционный барьер цифровых изоляторов изготавливается по различным технологиям. Небезызвестная компания Analog Devices в цифровых изоляторах ADUM в качестве барьера использует импульсный трансформатор. Внутри корпуса микросхемы расположено два кристалла и, выполненный отдельно на полиимидной пленке, импульсный трансформатор. Кристалл-передатчик по фронту информационного сигнала формирует два коротких импульса, а по спаду информационного сигнала — один импульс. Импульсный трансформатор позволяет с небольшой задержкой получить на кристалле-передатчике импульсы по которым выполняется обратное преобразование.
Описанная технология успешно применяется при реализации гальванической развязки, во многом превосходит оптроны, однако имеет ряд недостатков, связанных с чувствительностью трансформатора к помехам и риску искажений при работе с короткими входными импульсами.
Гораздо более высокий уровень устойчивости к помехам обеспечивается в микросхемах, где изоляционный барьер реализуется на емкостях. Использование конденсаторов позволяет исключить связь по постоянному току между приемником и передатчиком, что в сигнальных цепях эквивалентно гальванической развязке.
Преимущества емкостной развязки заключаются в высокой энергетической эффективности, малых габаритах и устойчивости к внешним магнитным полям. Это позволяет создавать недорогие интегральные изоляторы с высокими показателями надежности. Они выпускаются двумя компаниями — Texas Instruments и Silicon Labs. Эти фирмы используют различные технологии создания канала, однако в обоих случаях в качестве диэлектрика используется диоксид кремния. Этот материал имеет высокую электрическую прочность и уже несколько десятилетий используется при производстве микросхем. Как следствие, SiO2 легко интегрируется в кристалл, причем для обеспечения напряжения изоляции величиной в несколько киловольт достаточно слоя диэлектрика толщиной в несколько микрометров.
На одном (у Texas Instruments) или на обоих (у Silicon Labs) кристаллах, которые находятся в корпусе цифрового изолятора, расположены площадки-конденсаторы. Кристаллы соединяются через эти площадки, таким образом информационный сигнал проходит от приемника к передатчику через изоляционный барьер.
Хотя Texas Instruments и Silicon Labs используют очень похожие технологии интеграции емкостного барьера на кристалл, они используют совершенно разные принципы передачи информационного сигнала.
Каждый изолированный канал у Texas Instruments представляет собой относительно сложную схему.
Рассмотрим её «нижнюю половину». Информационный сигнал подается на RC-цепочки, с которых снимаются короткие импульсы по фронту и спаду входного сигнала, по этим импульсам сигнал восстанавливается. Такой способ прохождения емкостного барьера не подходит для медленноменяющихся (низкочастотных) сигналов. Производитель решает эту проблему дублированием каналов — «нижняя половина» схемы является высокочастотным каналом и предназначается для сигналов от 100 Кбит/сек.
Сигналы с частотой ниже 100 Кбит/сек обрабатываются на «верхней половине» схемы. Входной сигнал подвергается предварительной ШИМ-модуляции с большой тактовой частотой, модулированный сигнал подается на изоляционный барьер, по импульсам с RC-цепочек сигнал восстанавливается и в дальнейшем демодулируется.
Схема принятия решения на выходе изолированного канала «решает» с какой «половины» следует подавать сигнал на выход микросхемы.
Как видно на схеме канала изолятора Texas Instruments, и в низкочастотном, и в высокочастотном каналах используется дифференциальная передача сигнала. Напомню читателю её суть.
Дифференциальная передача — это простой и действенный способ защиты от синфазных помех. Входной сигнал на стороне передатчика «разделяется» на два инверсных друг-другу сигнала V+ и V-, на которые синфазные помехи разной природы влияют одинаково. Приемник осуществляет вычитание сигналов и в результате помеха Vсп исключается.
Дифференциальная передача также используется в цифровых изоляторах от Silicon Labs. Эти микросхемы имеют более простую и надежную структуру. Для прохождения через емкостный барьер входной сигнал подвергается высокочастотной OOK (On-Off Keying) модуляции. Другими словами, «единица» информационного сигнала кодируется наличием высокочастотного сигнала, а «ноль» — отсутствием высокочастотного сигнала. Модулированный сигнал проходит без искажений через пару емкостей и восстанавливается на стороне передатчика.
Цифровые изоляторы Silicon Labs превосходят микросхемы ADUM-ы по большинству ключевых характеристик. Микросхемы от TI обеспечивают примерно такое же качество работы как Silicon Labs, но в отдельных случаях уступают в точности передачи сигнала.
Где оно работает
Хочется добавить пару слов о том в каких микросхемах используется изоляционный барьер.
Первыми стоит назвать цифровые изоляторы. Они представляют собой несколько изолированных цифровых каналов, объединенных в одном корпусе. Выпускаются микросхемы с различной конфигурацией входных и выходных однонаправленных каналов, изоляторы с двунаправленными каналами (используются для развязки шинных интерфейсов), изоляторы со встроенным DC/DC-контроллером для изоляции питания.
Подключаем мощную нагрузку к Arduino, через реле модуль
- 1
- 2
- 3
- 4
- 5
Подключить на прямую к Arduino мощную нагрузку, например лампу освещения или электронасос не получится. Микроконтроллер не обеспечивает необходимую мощность, для работы такой нагрузки. Ток, который может протекать через выходы Arduino, не превышает 10-15 мА. На помощь приходит реле, с помощью которого можно коммутировать большой ток. К тому же, если нагрузка питается от переменного тока, например 220v, то без реле ни как вообще не обойтись. Для подключения мощных нагрузок к Arduino через реле, обычно используют реле модули.
В зависимости от количества коммутируемых нагрузок, применяют одно-, двух-, трёх-, четырёх- и более канальные реле модули.
Свои, одно и четырёх канальные модули, я купил на Aliexpress, за $ 0,5 и $ 2.09 соответственно.
Устройство реле модуля для Arduino, на примере 4-х канального модуля HL-54S V1.0.
Рассмотрим более детально устройство данного модуля, по данной схеме обычно строятся все многоканальные модули.
Принципиальная схема модуля.
Для защиты выводов Ардуино от скачков напряжения в катушке реле, применяется транзистор J3Y и оптрон 817C. Обратите внимание, сигнал с пина In подаётся на катод оптрона. Это значит, для того что бы реле замкнуло контакты, нужно подать на пин In логический 0 (инвертированный сигнал).
Так же бывают модули, у которых сигнал с пина In подаётся на анод оптрона. В таком случае, нужно подать логическую 1 на пин In, для срабатывания реле.
Мощность нагрузки, которую могут включать / отключать модули, ограничивается установленными на плате реле.
В данном случае используются электромеханические реле Songle SRD-05VDC-SL-C, имеющее следующие характеристики:
Рабочее напряжение: 5 В
Рабочий ток катушки: 71 мА
Максимальный коммутируемый ток: 10А
Максимальное коммутируемое постоянное напряжение: 28 В
Максимальное коммутируемое переменное напряжение: 250 В
Рабочий температурный режим: от -25 до +70°C
Реле Songle SRD-05VDC-SL-C имеет 5 контактов. 1 и 2 питание реле. Группа контактов 3 и 4 представляют из себя нормально разомкнутые контакты (NO), группа контактов 3 и 5 — нормально замкнутые (NC).
Подобные реле бывают на различные напряжения: 3, 5, 6, 9, 12, 24, 48 В. В данном случае используется 5-вольтовый вариант, что позволяет питать реле-модуль непосредственно от Arduino.
На плате имеется перемычка (JDVcc), для питания реле либо от Arduino, либо от отдельного источника питания.
Пинами In1, In2, In3, In4 модуль подключается к цифровым выводам Arduino.
Подключение реле модуля HL-54S V1.0 к Arduino.
Поскольку у нас модуль с 5-вольтовыми реле, подключим его по такой схеме, питание возьмём от самой Ардуино. В примере подключу одно реле, в качестве нагрузки буду использовать лампочку на 220 в.
Можно подключить на любой цифровой пин, в примере подключено на 7 пин. К какому пину будет подключен реле модуль, будет задаваться в скетче.
Для питания реле модуля от Arduino, перемычка должна замыкать пины «Vcc» и «JDVcc», обычно по-умолчанию она там и установлена.
Если у вас реле не на 5 вольт, питать от Ардуино модуль нельзя, питание нужно брать от отдельного источника.
Нижеприведённая схема показывает, как подключить питание модуля от отдельного источника. По такой схеме нужно подключать реле, рассчитанное на питание от более или менее чем 5 В. Для 5-вольтовых реле эта схема так же будет более предпочтительная.
При таком подключении нужно убрать перемычку между пинами «Vcc» и «JDVcc». Далее пин «JDVcc» подключить к «+» внешнего источника питания, пин «Gnd» подключить к «—» источника питания. Пин «Gnd», который в предыдущей схеме подключался к пину «Gnd» Ардуино, в данной схеме не подключается. В моём примере, внешний источник питания 5 В, если ваше реле рассчитано на другое напряжение (3, 12 ,24 В), выбираете соответствующее внешнее питание.
Скетч для управления реле модулем через Ардуино.
Зальём в Ардуино скетч, который будет сам включать и отключать лампочку (мигалка).
void setup() <
pinMode(relayPin, OUTPUT);
>
В строке int relayPin = 7; указываем номер цифрового пина Arduino , к которому подключали пин In1 реле модуля. Можно подключить на любой цифровой пин и указать его в этой строке.
В строке delay(5000); можно менять значение времени, при котором лампочка будет гореть и при котором будет погашена.
В строке digitalWrite(relayPin, LOW); указано, при подаче логического нуля (LOW), реле-модуль замкнёт контакты и лампочка будет гореть.
В строке digitalWrite(relayPin, HIGH); указано, при подаче логической единицы (HIGH), реле-модуль разомкнёт контакты и лампочка погаснет.
Если вы не знаете, при каком уровне сигнала (0 или 1) будет срабатывать ваш экземпляр модуля и нет желания разбираться как подключен оптрон на плате, можно определить экспериментально. Для этого заливаете в Ардуино немного упрощённый, вышепредставленный скетч.
void setup() <
pinMode(relayPin, OUTPUT);
>
Как видим, в строке digitalWrite(relayPin, LOW); оставили параметр LOW. Если реле замкнёт контакты и лампочка загорится, значит на пин In1 вам нужно подавать логический нуль, как и у меня. Если лампочка не загорится, зальём скетч, в котором заменим параметр LOW на HIGH.
int relayPin = 7;
void setup() <
pinMode(relayPin, OUTPUT);
>
void loop() <
digitalWrite(relayPin, HIGH);
Если лампочка загорится, значит на пин In1 вам нужно подавать логическую единицу.
Результат скетча на видео.
Теперь давайте добавим в схему тактовую кнопку и при нажатии на неё, реле-модуль будет включать лампочку.
Кнопку подключаем вместе с подтягивающим резистором на 10к, который не позволит внешним наводкам влиять на работу схемы.
void setup() <
pinMode(relayPin, OUTPUT);
>
В строке if(digitalRead(14)==HIGH) задаём номер цифрового пина, на котором подключена кнопка. Подключать можно на любой свободный. В примере эта аналоговый пин A0, его же можно использовать в качестве цифрового 14 пина.
В строке delay(300); задаётся значение в миллисекундах. Это значение указывает, через какое время после нажатия или отпускание кнопки, нужно производить действия. Это защита от дребезга контактов.
Для информации! Все аналоговые входы от A0 ( нумеруется как 14) до A5 (19), можно использовать как цифровые ( Digital PWM ).
В заключении результат выполнения скетча на видео.
Более дешёвые реле-модули могут не содержать в своей схеме оптрона, как например в моём случае с одноканальным модулем.
Схема одноканального реле-модуля. Производитель сэкономил на оптроне, из-за чего Ардуино плата лишилась гальванической развязки. Для работы такой платы, на пин In нужно подавать логический нуль.
Подключение реле модуля к Arduino Due.
Arduino Due работает от 3,3 вольт, это максимальное напряжение, которое может быть на его вводах / выводах. Если будет более высокое напряжение, плата может сгореть.
Возникает вопрос, как подключить к Arduino Due реле модуль?
Убираем перемычку JDVcc. Подключаем пин «Vcc» на плате реле модуля к пину «3,3V» Arduino. Если реле рассчитано на 5 вольт, соединяем пин «GND» платы реле модуля, с пином «GND» Arduino Due. Пин «JDVcc» подключаем к пину «5V» на плате Arduino Due. Если реле рассчитано на другое напряжение, то питание к реле подключаем как на рисунке, в примере это 5 вольт. Если у вас многоканальный реле модуль, пожалуйста проверьте что бы « JDVcc » подключен к одной стороне всех реле. Оптопара активируется сигналом 3,3 В, которая в свою очередь активирует транзистор, используемый для включения реле.
Первый пример
В этой статье мы рассмотрим только один пример, который мы использовали для проверки работоспособности платы. Соберите этот проект заново или откройте его снова. В нем должен быть следующий код:
Скомпилируйте его и загрузите в память МК, воспользовавшись инструкциями из предыдущей статьи. Вы увидите, что 13й светодиод в линейке начнет мигать.
Разберем структуру программы для микроконтроллера:
Компоновка программы для микроконтроллера
Сначала идет подключение различных библиотек. У нас подключено два. avr/io.h содержит описание различных констант, определения регистров и т.д. Библиотека util/delay.h позволяет создавать задержки в программе. Для работы этой библиотека необходимо определить частоту, что и делается директивой #define F_CPU 16000000UL. Программа всегда выполняется от первой строчки к последней и задать частоту нужно обязательно раньше, чем подключить библиотеку delay.h. F_CPU — часто используемая различными библиотеками константа. Лучше всего объявлять ее значение в самом начале программы.
main — основная программа. Сначала в ней выполняется первичная настройка (и другие действия, которые нужно выполнить только один раз), затем запускается бесконечный цикл в котором выполняется основная программа.
Чтобы продолжить разбор приведенной программы необходимо сделать небольшое отступление.
Световой диммер управляемый Arduino. Световой диммер управляемый Arduino Подключение тиристора к ардуино схема
Переключение нагрузки переменного тока с использованием Arduino довольно просто: используется либо механическое реле, либо твердотельное реле с оптически изолированным симистором. Становится немного сложнее, если необходимо уменьшать яркость лампы переменного тока используя Arduino: просто ограничивать ток симистором не представляется возможным из-за необходимости в мощном симисторе, и как следствие необходимости рассеивания большого количества тепла, а также это не эффективно с точки зрения использования энергии.
Правильным способом реализации является применение регулирования фазы: Симистор полностью открыт, но только в части синусоидальной волны переменного тока.
Можно просто открывать симистор на некоторое количество микросекунд при помощи Arduino, но проблема в том, что непредсказуемо в какой части синусоидальной волны симистор открывается и, следовательно, уровень затемнения непредсказуем. В синусоидальной волне необходима точка отсчета.
Для этого необходим детектор пересечения нуля. Это схема, которая сообщает Arduino (или другому микроконтроллеру), когда синусоидальная волна проходит через нуль и, следовательно, дает определенную точку на этой синусоидальной волне.
Открытие симистора на некоторое количество микросекунд, начиная от пересечения нуля, дает предсказуемый уровень затемнения.
Такую схему легко сделать: пересечение нуля берётся непосредственно из выпрямленного сетевого переменного тока — конечно через оптрон, и дает сигнал каждый раз, когда волна проходит через нуль. Так как синусоида сначала проходит двухфазное выпрямление, сигнал пересечения нуля подается независимо от того, вверх или вниз идет синусоидальная волна. Затем этот сигнал может быть использован для вызова прерывания Arduino.
Само собой разумеется, что должна быть гальваническая развязка между Arduino и сетью. Для тех, кто не понимает «гальваническая развязка», это значит «без металлических соединений», то есть —> оптопарами.
Схема изображенная здесь делает именно это. Сетевое напряжение 220 Вольт идет к мостовому выпрямителю через два резистора 30кОм, который выдает двухфазный выпрямленный сигнал на оптрон 4N25. Светодиод в этом оптроне при низком уровне работает на частоте 100 Гц, а на коллекторе выходит сигнал высокого уровня с частотой 100 Гц в соответствии с синусоидальной волной. Сигнал с 4N25 подается на прерывающий вывод в Arduino (или другого микропроцессора). Программа прерываний дает сигнал определенной длины на один из портов ввода/вывода. Сигнал с порта ввода/вывода сигнала уходит в нашу схему и открывает светодиод в MOC3021, который запускает оптотиристор. Светодиод последовательно MOC3021 указывает, проходит ли ток через MOC3021. Имейте в виду, что при затемнении, свечение будет не очень видно из-за коротких вспышек. Если вы решили использовать тиристорный переключатель непрерывно, то светодиод будет гореть ясно.
Имейте в виду, что только обычные лампы накаливания действительно подходят для затемнения. Схема также будет работать с галогенной лампой, но это сократит срок службы галогенной лампы. Она не будет работать с любыми КЛЛ лампами, если они специально не сделаны с возможностью диммирования.
Если у вас есть оптрон H11AA11, то его использование описано ниже.
Предупреждение: Эта схема работает с напряжением 110-220В. Не делайте её, если вы не уверены в своих действиях. Отключайте её, прежде чем приблизиться к печатной плате. Радиатор симистора подключен к сети. Не прикасайтесь к нему во время работы и сделайте для него надлежащий корпус.
Эта схема безопасна, если она собрана человеком, который знает, что делает. Если вы понятия не имеете об этом или сомневаетесь в своих действиях, то вы можете погибнуть!
Материалы
Детектор пересечения нуля
4N25 или H11AA11 (см. текст).
Резистор 10кОм.
Мостовой выпрямитель 400В.
2x Резистор 30кОм 1/2 Вт (Скорее всего на каждом резисторе будет рассеиваться 200mW).
1 разъем.
Стабилитрон 5,1В(опционально).
Драйвер лампы
Светодиод
MOC3021
Резистор 220 Ом (я использовал 330 Ом, и всё хорошо работало).
Резистор 470 Ом-1кОм (Я закончил с использованием 560 Ом, и всё хорошо работало)
Симистор TIC206
1 разъем
Прочее
Кусок текстолит 6×3см.
Провода.
Плата
Я сделал плату при помощи и вытравил её в растворе солянной кислоты и перекиси водорода. В интернете есть много . Вы можете сделать плату, используя прилагаемый рисунок ПП. Сборка платы достаточно проста. Я использовал панельки для оптронов и мостового выпрямителя. Скачать рисунок платы и его зеркальную версию можно внизу статьи.
Примечание: рисунок платы имеет текст. В незеркальной версии рисунка текст зеркален, а в зеркальной версии рисунка текст не зеркален. Это правильно. При ЛУТ, отпечатанный рисунок переноситься непосредственно на медь, где он и выглядит правильно.
Я использовал TIC206. Он может выдавать 6 ампер. Имейте в виду, что проводники платы не выдержат 6 ампер. При подключении мощной нагрузки припаяйте провод на проводники от симистора к разъемам и на проводники ко вторым разъемам.
Если неясно значение контактов: сверху вниз по второй фотографии:
+5 вольт.
Сигнал прерывания (Digital Pin 2 Arduino).
Сигнал для симистор (выходит из Digital Pin 3 на Arduino).
GND.
ПРИМЕЧАНИЕ:
Если у вас есть оптрон H11AA11, то вам не нужен мостовой выпрямитель. H11AA11 имеет два не параллельных диода, и может работать с переменным током. Он совместим по выводам с 4N25, просто вставьте его в припоя и 2 перемычки между R5 и + и R7 и -.
Программа
Программа довольно проста. Нулевой Х сигнал генерируется в прерывании. Затем в прерывании симистор переключается на определенное время. Программа доступна ниже.
О программе: Теоретически в цикле можно было позволить переменной «i» начинается с «0 «. Однако, поскольку времени на прерывание мало, использование «0»(полностью вкл.) может немного испортить время. То же самое касается 128(полностью выкл.), хотя это кажется менее критичным. Точность «5» или, возможно, «1» является пределом настройки. Ваш диапазон может быть, например, от 2 до 126, вместо 0-128. Если у кого-то есть более точный способ настройки времени прерывания, я буду рад услышать его.
Результаты и применение
Посмотрите короткое видео о работе устройства, записанное на мобильный телефон.
Подобным способом можно сделать схему для смешивания RGB светодиодов. Это также возможно с текущей схемой, но необходимы две дополнительных симисторных схемы. Разумеется, нужен только один детектор пересечения нуля.
Также возможно сделать традиционную (назовем ей старомодной) гирлянду для рождественской елки, работающую непосредственно от 220 (или 110) вольт. Повесьте 3 провода с разными лампами на дерево и регулируйте их при помощи этой схемы с двумя дополнительными симисторными схемами.