Как подключить оптопару к микроконтроллеру
Как с помощью Ардуино безопасно управлять нагрузкой на напряжении 220 вольт
Для системы «Умный дом» основной задачей является управление бытовыми приборами с управляющего устройства будь то микроконтроллер типа Ардуино, или микрокомпьютер типа Raspberry PI или любое другое. Но сделать этого напрямую не получится, давайте разберемся как управлять нагрузкой 220 В с Ардуино.
Для управления цепями переменного тока средств микроконтроллера недостаточно по двум причинам:
1. На выходе микроконтроллера формируется сигнал постоянного напряжения.
2. Ток через пин микроконтроллера обычно ограничен величиной в 20-40 мА.
Мы имеем два варианта коммутации с помощью реле или с помощью симистора. Симистор может быть заменен двумя включенными встречно-параллельно тиристорами (это и есть внутренняя структура симистора). Давайте подробнее рассмотрим это.
Управление нагрузкой 220 В с помощью симистора и микроконтроллера
Внутренняя структура симистора изображена на картинке ниже.
Тиристор работает следующим образом: когда к тиристору приложено напряжение в прямом смещении (плюс к аноду, а минус к катоду) ток через него проходить не будет, пока вы не подадите управляющий импульс на управляющий электрод.
Я написал импульс не просто так. В отличие от транзистора тиристор является ПОЛУУПРАВЛЯЕМЫМ полупроводниковым ключом. Это значит, что при снятии управляющего сигнала ток через тиристор продолжит протекать, т.е. он останется открытым. Чтобы он закрылся нужно прервать ток в цепи или сменить полярность приложенного напряжения.
Это значит, что при удержании положительного импульса на управляющем электроде нужно тиристор в цепи переменного тока будет пропускать только положительную полуволну. Симистор может пропускать ток в обоих направлениях, но т.к. он состоит из двух тиристоров подключенных навстречу друг другу.
Управляющие импульсы по полярности для каждого из внутренних тиристоров должны соответствовать полярности соответствующей полуволны, только при выполнении такого условия через симистор будет протекать переменный ток. На практике такая схема реализована в распространенном симисторном регуляторе мощности.
Как я уже сказал микроконтроллер выдает сигнал только одной полярности, для того чтобы согласовать сигналу нужно использовать драйвер построенный на оптосимисторе.
Таким образом, сигнал включает внутренний светодиод оптопары, она открывает симистор, который и подает управляющий сигнал на силовой симистор T1. В качестве оптодрайвера может быть использован MOC3063 и подобные, например, на фото ниже изображен MOC3041.
Zero crossing circuit – цепь детектора перехода фазы через ноль. Нужна для реализации разного рода симисторных регуляторов на микроконтроллере.
Если схема и без оптодрайвера, где согласование организовано через диодный мост, но в ней, в отличие от предыдущего варианта нет гальванической развязки. Это значит, что при первом же скачке напряжения мост может пробить и высокое напряжение окажется на выводе микроконтроллера, а это плохо.
При включении/выключении мощной нагрузки, особенно индуктивного характера, типа двигателей и электромагнитов возникают всплески напряжения, поэтому параллельно всем полупроводниковым приборам нужно устанавливать снабберную RC цепь.
Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств
Реле и А рдуино
Для управления реле с А рдуино нужно использовать дополнительный транзистор для усиления тока.
Обратите внимание, использован биполярный транзистор обратной проводимости (NPN-структура), это может быть отечественный КТ315 (всеми любимый и всем известный). Диод нужен для гашения всплесков ЭДС самоиндукции в индуктивности, это нужно чтобы транзистор не вышел из строя от высокого приложенного напряжения. Почему это возникает, объяснит закон коммутации: «Ток в индуктивности не может измениться мгновенно».
А при закрытии транзистора (снятии управляющего импульса) энергии магнитного поля накопленной в катушке реле необходимо куда-то деваться, поэтому и устанавливают обратный диод. Еще раз отмечу, что диод подключен в ОБРАТНОМ направлении, т.е. катодом к плюсу, анодом к минусу.
Такую схему можно собрать своими руками, что значительно дешевле, плюс вы можете использовать реле, рассчитанное на любое постоянное напряжение.
Или купить готовый модуль или целый шилд с реле для Ардуино :
На фото изображен самодельный шилд, кстати, в нем использованы для усиления тока КТ315Г, а ниже вы видите такой же шилд заводского исполнения:
Это 4-канальные шилды, т.е. вы можете включать целых четыре линии 220 В. Подробно о шилдах и реле мы уже выкладывали статью на сайте — Полезные шилды для Ардуино
Схема подключения нагрузки на напряжении 220 В к Ардуино через реле:
Заключение
Безопасное управление нагрузкой переменного тока подразумевает прежде всего безопасность для микроконтроллера вся описанная выше информация справедлива для любого микроконтроллера, а не только платы Ардуино .
Главная задача – обеспечить нужные напряжение и ток для управления симистором или реле и гальваническая развязка цепей управления и силовой цепи переменного тока.
Кроме безопасности для микроконтроллера, таким образом, вы подстраховываете себя, чтобы при обслуживании не получить электротравму. При работе с высоким напряжением нужно соблюдать все правила техники безопасности, соблюдать ПУЭ и ПТЭЭП.
Эти схемы можно использовать и для управления мощными пускателями и контакторами. Симисторы и реле в таком случае выступают в роли промежуточного усилителя и согласователя сигналов. На мощных коммутационных приборах большие токи управления катушкой и зависят непосредственно от мощности контактора или пускателя.
Любите умные гаджеты и DIY? Станьте специалистом в сфере Internet of Things и создайте сеть умных гаджетов!
Записывайтесь в онлайн-университет от GeekBrains:
Изучить C, механизмы отладки и программирования микроконтроллеров;
Получить опыт работы с реальными проектами, в команде и самостоятельно;
Получить удостоверение и сертификат, подтверждающие полученные знания.
Starter box для первых экспериментов в подарок!
После прохождения курса в вашем портфолио будет: метостанция с функцией часов и встроенной игрой, распределенная сеть устройств, устройства регулирования температуры (ПИД-регулятор), устройство контроля влажности воздуха, система умного полива растений, устройство контроля протечки воды.
Вы получите диплом о профессиональной переподготовке и электронный сертификат, которые можно добавить в портфолио и показать работодателю.
Подключение оптопары к микроконтроллеру AVR ATmega8
В этой статье мы рассмотрим подключение оптопары к микроконтроллеру ATmega8 (семейство AVR). Оптопары представляют собой устройства, предназначенные для изоляции электронных и электрических схем. Это простое устройство может изолировать чувствительную электронику от «грубой» электроники такой, к примеру, как электродвигатели, при этом сохраняя контроль над источником.
В данном примере мы будем управлять скоростью вращения электродвигателя переменного тока (конкретно вентилятора) с помощью логического управления от микроконтроллера. Мы могли бы это сделать и с помощью простого соединения (без использования оптопары), но тогда бы нам пришлось столкнуться с появлением шумов в схеме управления скоростью вращения электродвигателем. Поскольку это двигатель переменного тока нам бы пришлось использовать сложные фильтрующие схемы чтобы избавиться от этого шума. Но с помощью оптопары мы можем избежать прямого контакта микроконтроллера с электродвигателем и при этом сохранить полный контроль над системой.
Оптоэлектронные устройства, как следует из их названия, имеют в своем составе триггерную систему, управляемую с помощью света. Мы передаем сигнал на светоизлучающее устройство на источнике, а на приемном конце мы имеем триггерный переключатель, работающий от света. В данном проекте мы будем подключать оптопару 4N25 к микроконтроллеру ATmega8. Когда выключатель на стороне контроллера будет нажат, светодиод оптопары будет зажигаться.
Необходимые компоненты
Аппаратное обеспечение
- Микроконтроллер ATmega8 (купить на AliExpress).
- Программатор AVR-ISP (купить на AliExpress), USBASP (купить на AliExpress) или другой подобный.
- Оптопара 4N25 (купить на AliExpress).
- Светодиод (купить на AliExpress).
- Резистор 1 кОм (3 шт.) (купить на AliExpress).
- Источник питания с напряжением 5 Вольт.
Программное обеспечение
- Atmel Studio версии 6.1 (или выше).
- Progisp или flash magic (необязательно).
Работа схемы
Схема устройства приведена на следующем рисунке.
Прежде чем двигаться дальше, рассмотрим принципы работы оптопары. Внутренняя схема оптопары приведена на следующем рисунке.
Контакты PINA и PINC подсоединяются к источнику. Контакты PINB, PINC, PINE подсоединяются к нагрузке.
Из представленного рисунка видно, что оптопара состоит из светодиода на стороне источника и фототранзистора на стороне нагрузки. Система заключена в замкнутый корпус, что увеличивает эффективность работы фототранзистора.
Когда от источника поступает сигнал на светодиод оптопары он испускает свет и фототранзистор, расположенный рядом со светодиодом, срабатывает и приводит в исполнение подсоединенную к его выходам цепь. Таким образом, управляющий сигнал от микроконтроллера преобразуется в свет, который заставляет сработать фототранзистор и тем самым подать необходимый сигнал в управляемую нагрузку (в представленной схеме нагрузкой является светодиод, но в общем случае подобным образом можно управлять и электродвигателем).
Эквивалентную электрическую схему оптопары можно изобразить следующим образом.
При нажатии кнопки, подсоединенной к микроконтроллеру, он подает управляющий импульс на светодиод оптопары (в эквивалентной схеме замещенный диодом), что заставляет сработать транзистор и зажечь подсоединенный к нему светодиод (в денном случае светодиод является нагрузкой оптопары). Более детально принцип работы данной схемы рассмотрен в комментариях к представленной программе.
Исходный код программы на языке С (Си) с пояснениями
Программа для рассматриваемой схемы подключения оптопары к микроконтроллеру AVR ATmega8 представлена следующим фрагментом кода на языке С (Си). Комментарии к коду программу поясняют принцип работы отдельных команд.
Как подключить светодиод к микроконтроллеру
Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее. |
В разделе о дискретных выходах я в общих чертах рассказал о том, как микроконтроллер может управлять нагрузкой. То есть как эти дискретные выходы используются.
Сегодня буду говорить о более конкретном использовании дискретных выходов — о том, как подключить светодиод к выходу микроконтроллера.
Почему именно светодиод?
Ну потому что мои статьи предназначены, в основном, для начинающих. А подключение светодиода — это довольно простое действие, которое может повторить любой, даже без понимания основ электроники и электротехники.
Но, даже в таком простом деле, как подключение светодиода, есть свои особенности, незнание которых, конечно, не приведёт к третьей мировой войне, но всё-же может испортить вам настроение путём “сгорания” светодиода или даже выхода из строя микроконтроллера.
Также отмечу, что умение подключать светодиод может пригодиться вам и для управления более мощной нагрузкой, например, с помощью оптрона. Как известно оптрон (или оптопара) — это пара из свето- и фотодиода. Соответственно, если вы научитесь подключать к микроконтроллеру светодиод, то вы также сможете подключить и оптрон.
Светодиоды потребляют очень небольшой ток. В зависимости от типа светодиода — примерно от 3 до 20 мА. А это означает, что почти любой светодиод можно подключать непосредственно к выходу микроконтроллера.
Например, при логическом нуле на выходе микроконтроллера серии AVR, ток может достигать 20 мА, чего вполне достаточно для включения светодиода.
Однако надо понимать и помнить, что напрямую светодиод нельзя подключать к какому-либо источнику энергии, потому что в этом случае ток через светодиод почти наверняка превысит допустимый, и светодиод может выйти из строя. Поэтому светодиоды всегда включают последовательно с резистором, который ограничивает ток до допустимого значения.
Схема включения светодиода показана на рисунке.
Таким образом можно подключить светодиод к любому источнику питания. Сопротивление и мощность рассеивания ограничительного резистора рассчитывается исходя из типа светодиода и напряжения питания. Способы расчета здесь приводить не буду. Если кому интересно, то изучайте закон Ома (например, здесь).
А теперь схема подключения светодиода к микроконтроллеру:
Здесь сопротивление резистора уже определено и рассчитано на напряжение 5В (очень многие микроконтроллеры питаются именно от такого напряжения).
Таким же образом можно подключить и оптрон.
Как я уже сказал, внутри оптрона находится пара оптических элементов. Один из них, как правило — это светодиод (передатчик светового излучения). А второй (приёмник излучения) может быть фотодиодом, фототранзистором, фотосимистором и т.п.
Например, используя оптрон с фотосимистором, можно с помощью микроконтроллера управлять высоковольтной нагрузкой, такой как лампа накаливания на 220В.
Таким образом достигается гальваническая развязка между высоковольтной частью устройства на микроконтроллере, и низковольтной (то есть схемой управления устройством).
Гальваническую развязку можно выполнить, например, и с помощью реле. Однако в случае использования реле при управлении нагрузкой контакты реле почти наверняка будут искрить. А это нежелательно, а иногда и просто недопустимо (например, на взрывоопасных объектах).
В оптроне же никакого искрения не возникает.
Буферизация сигнала цифрового микроконтроллера для подключения к оптопаре
Я часто работаю над проектами, в которых я использую оптопары для изоляции цифровых управляющих сигналов +5 В постоянного тока (например, от микроконтроллера) от остальной части цепи. Тем не менее, поскольку они работают, освещая светодиод внутри устройства, нагрузка на контакты микроконтроллера может достигать нескольких десятков миллиампер. Я искал совет о том, что было бы наилучшей практикой для буферизации этого управляющего сигнала с дополнительным каскадом, чтобы микроконтроллер эффективно видел высокий импеданс и тем самым уменьшал ток, который он должен обеспечивать?
Просто наивно с головой я могу придумать несколько вещей, которые могут сработать:
1) Просто используйте операционный усилитель в качестве буферного усилителя с единичным усилением.
2) Используйте специальный чип компаратора для сравнения входного сигнала, например, с + 2,5 В постоянного тока.
3) Используйте полевой МОП-транзистор в качестве усилителя сигнала.
Однако после некоторого чтения я натолкнулся на целую кучу чипов, которые раньше никогда не использовал, но похоже, что они могут быть разработаны для такого рода вещей. Например:
- Драйвер дифференциальной линии ( MC3487 )
- Дифференциальный линейный приемник (DC90C032)
- Линейный трансивер (SN65MLVD040)
- Буферные ворота и драйверы (SN74LS07, SN74ABT126)
У меня действительно нет никакого опыта с любым из них, и я немного ошеломлен количеством доступного материала! Так может кто-нибудь помочь мне узнать различия между этими устройствами, и какие из них будут / не подойдут в этом случае. Есть ли лучший / стандартный способ достижения того, что я описываю?
редактировать: так
как я мог переключаться примерно на выходы x30, я не хочу беспокоиться о загрузке микроконтроллеров, и поэтому не буду рассматривать подключение напрямую к выводам DIO. Поэтому, думаю, я пойду за буфером логики IC. Я собираюсь попробовать использовать SN74LVC1G125 « Единый буферный шлюз с выходом с 3 состояниями » для каждого входа и посмотреть, как это работает.
У вас есть много вариантов.
Если вам нужно подключить очень мало оптопар, вы можете подключить их напрямую к GPIO вашего микроконтроллера (через резистор), при условии, что:
- Вы не превышаете выходной ток GPIO.
- Вы не превышаете общий ток порта.
- Вы не превышаете общий ток gnd / vdd.
Если вам нужно подключить больше оптопар, вы можете попробовать использовать оптопары с низким и высоким коэффициентом передачи, такие как SFH618 ( https://www.vishay.com/docs/83673/sfh618a.pdf ), и подключить их напрямую к ваши GPIO (через резистор).
Или вы можете использовать BJT или MOSFET (см. Схемы ниже). Некоторые заметки:
- Не забудьте установить понижающий / повышающий резистор, который гарантирует, что MOSFET / BJT выключены, когда GPIO еще не инициализирован (например, во время сброса).
- Резистор повышения или понижения может быть опущен, если ваш MCU имеет вывод GPIO с всегда активным подтягиванием / опусканием во время сброса.
- При использовании MOSFET не забудьте использовать MOSFET логического уровня (например, BSS138).
- Если вы используете активное-низкое решение, убедитесь, что напряжение высокого уровня GPIO — VDD. Т.е. не используйте 3.3V-GPIO и VDD = 5V в активном низком уровне! ,
Тем не менее, если вам нужно управлять многими оптопарами (например, 6), вы можете использовать упомянутый 74LS07, так как он допускает 40 мА на вывод, и вам придется монтировать только один компонент (вместо 6 BJT / MOSFET). Помните, что, в отличие от CMOS, микросхемы TTL по своей сути подтягиваются! Тем не менее, вам может потребоваться подтягивающий резистор (в техническом описании также рекомендуется не оставлять входы плавающими). И, поскольку ’07 не инвертирует, это решение будет активным LOW. 74ABT126 — CMOS, поэтому вы ДОЛЖНЫ использовать резистор!
Описание
Наиболее распостраненным анологово цыфровым интерфейсом, безсомненно, является АЦП (аналого цыфровой преобразователь). Почти вся аналоговая информация приходящая из вне, помадает в микроконтроллер через АЦП. В книге подробно рассмотрены принцип работы и приемы использования этого анологово цыфрового интерфейса.
Подключение термодатчиков к микроконтроллеру
Термодатчики используются практически везде. Ведь температура это одна из важнейшых характеристик окружающей среды. Для того чтоб оперировать с значениями температуры нам необходимо ввести ее значения в микроконтроллер. А для этого необходимо произвести подключение термодатчиков к микроконтроллеру. В книге рассматриваються, нюансы которые всплывают при подключении термодатчиков к микроконтроллеру.
Подключение оптических датчиков к микроконтроллеру
Для получения оптической информации исполюзуются разнообразные оптические датчики. в книге есть примеры подключения к микроконтроллеру таких оптических датчиков
- Связь микроконтроллера с щелевым оптроном
- Связь микроконтроллера с отражательным оптроном
Аналоговые интерфейсы микроконтроллеров.
Данное издание является практическим пособием по применению различных
интерфейсов для подключения аналоговых периферийных устройств к компьюте-
рам, микропроцессорам и микроконтроллерам. Раскрывается специфика приме-
нения таких интерфейсов, как I2C, SPI/Microware, SMBus, RS-232/485/422, токо-
вая петля 4-20 мА и др. Дается обзор большого количества современных датчиков:
температурных, оптических, ПЗС, магнитных, тензодатчиков и т. д. Подробно
описываются контроллеры, АЦП и ЦАПы, их элементы — УВХ, ИОН, кодеки, эн-
кодеры. Рассмотрены исполнительные устройства — двигатели, терморегуляторы
— и вопросы их управления в составе систем автоматического управления различ-
ного типа (релейного, пропорционального и ПИД). Книга снабжена иллюстраци-
ями, наглядно представляющими аппаратные и программные особенности при-
менения элементов аналоговой и цифровой техники.
Заинтересует не только начинающих радиолюбителей, но и специалистов,
имеющих стаж работы с аналоговой и цифровой техникой, а также студентов тех-
нических колледжей и вузов.
Принятые сокращения 12
Предисловие 13
Введение 14
Глава 1. Параметры системы 15
1.1. Динамический диапазон 15
1.2. Точность измерения напряжения 16
1.3. Калибровка 16
1.4. Пропускная способность шины 19
1.5. Производительность процессора 20
1.5.1. Прерывания 21
1.5.2. Интерфейсы 21
1.5.3. Поддержка на аппаратном уровне 21
1.5.4. Требования к процессору 22
1.5.5. Требования к операционной системе 22
1.5.6. Язык программирования и компилятор 22
1.6. Ограничение скорости 22
1.6.1. Затраты 23
1.6.2. Электромагнитная совместимость 23
1.7. Другие системные ограничения 24
1.7.1. Периферийные устройства 24
1.7.2. Общие интерфейсы 24
1.7.3. Приоритет задач 24
1.7.4. Системные требования 25
1.7.5. Разрядность цифрового слова 27
1.7.6. Интерфейсы 27
1.8. Частота дискретизации и наложение 27
Глава 2. Аналого-цифровые преобразователи 30
2.1. Общие сведения 30
2.2. Описание АЦП. 32
2.2.1. Опорное напряжение 33
2.2.2. Выходное слово 33
2.2.3. Разрешение 33
2.3. Типы АЦП 34
2.3.1. Следящий АЦП 34
2.3.2. Параллельный АЦП 36
2.3.3. АЦП последовательных приближений 37
2.3.4. АЦП двойного интегрирования 38
2.3.5. Сигма-дельта АЦП 40
2.3.6. Составной АЦП 43
2.4. Сравнение типов АЦП по основным показателям 44
2.5. Устройства выборки-хранения 45
2.6. Реальные компоненты 48
2.6.1. Входные уровни 48
2.6.2. Встроенный источник опорного напряжения 49
2.6.3. Дополнительная емкость на входе опорного напряжения 49
2.6.4. Встроенное УВХ 49
2.7. Интерфейс микропроцессора 49
2.7.1. Кодирование выходного слова 49
2.7.2. Параллельный интерфейс 50
2.7.3. Время доступа 52
2.7.4. Выход BUSY 54
2.7.5. Время освобождения шины 54
2.7.6. Связь сигналов шины управления с АЦП 55
2.7.7. Задержка между преобразованиями 55
2.7.8. Величина погрешности преобразования 56
2.8. Синхронные интерфейсы 56
2.9. Последовательные интерфейсы 58
2.9.1. Периферийный последовательный интерфейс SPI/Microwire 58
2.9.2. Шина 12С 61
2.9.3. Шина SMBus 63
2.9.4. Специализированные последовательные интерфейсы 64