Как подключить mosfet к ардуино
Arduino и MOSFET транзистор
Описание
Полевой транзистор, он же мосфет (MOSFET) – электронный компонент, позволяющий при помощи небольшого напряжения и тока (с пина микроконтроллера) управлять мощной нагрузкой постоянного то ка, которую пин МК сам питать не в состоянии: моторы, клапаны, мощные светодиоды и так далее. Более подробно про мосфеты написано в уроке по управлению нагрузкой. В уроке идёт мосфет IRF740, N-канального типа.
Подключение (N-канальный)
Управляющий пин мосфета (затвор) подключается к любому цифровому пину МК через токоограничивающий резистор на 100-200 Ом (в наборе идут резисторы 220 ом), что защитит пин от слишком большого тока. Также он подтягивается к GND резистором на 10 кОм, чтобы транзистор автоматически закрылся при отсутствии сигнала с МК. “Плюс” источника питания подключается напрямую к нагрузке, GND соединяется с GND микроконтроллера. GND нагрузки подключается на выход (сток) мосфета:
Рассмотрим возможное подключение мотора из PRO версии набора, питание от внешнего 5V адаптера:
Примеры
Для управления транзистором достаточно подать с пина сигнал:
Обычный “блинк”, но через транзистор. Нагрузка будет включаться и выключаться
Подключение мосфета к Ардуино
Программируемый микроконтроллер Arduino идеально подходит для создания нестандартных устройств. А имеющиеся в избытке готовые модули, расширения и скетчи значительно облегчают задачу.
Однако, всегда находятся проекты, в которых к Arduino необходимо подключить мощный узел или устройство. Микроконтроллер будет отвечать за логику работы, а узел или устройство – выполнять простую работу.
С одной стороны – ничего сложного, с другой – Arduino обеспечивает на выходе только небольшой ток и напряжение (U – не более 5В, I – 40 мА). Значит. Мощную нагрузку нужно подключать через специальный «усилитель». В качестве последнего могут выступать специализированные транзисторы Дарлинтона, биполярные, полевые (мосфеты), реле (механические или на оптопаре) и т.п.
Мы уже подробно рассмотрели основные варианты подключения нагрузки к Ардуино. Здесь же детально осветим вариант с полевым транзистором.
В первую очередь следует определиться с тем, какие устройства или типы нагрузок лучше всего подключать через полевики:
Не стоит через мосфеты подключать «быстрые» приборы (работающие на высоких частотах или часто включаемые/отключаемые) или сеть с переменным током (для этой задачи лучше всего использовать реле).
Во-первых, полевой транзистор будет греться, во-вторых, его реакция определённо «медленная» для ВЧ техники.
Типовая схема включения нагрузки будет иметь такой вид.
Рис. 1. Типовая схема включения нагрузки
Или такой (для лучшего понимания принципа работы).
Рис. 2. Вариант схемы включения нагрузки
Резистор 3к на затворе – это ограничитель (подстроечное сопротивление). А 10к – это своего рода предохранитель от перехода мосфета в Z-режим (исключается эффект «дребезжания» на малых токах управления).
Если нагрузка обладает большой индуктивностью (актуально, например, для двигателей), то следует использовать дополнительный диод (несмотря на то, что в большинстве мосфетов он уже встроен, не помещает дополнительная защита).
Схема принимает следующий вид.
Рис. 3. Схема устройства
На случай исключения обратного пробоя и выхода из строя платы микроконтроллера, можно реализовать гальванический разрыв цепи через оптрон.
Рис. 4. Гальванический разрыв цепи через оптрон
Если логика работы предполагает быструю реакцию мосфета на сигналы с ШИМ-пина (PWM), то выходной сигнал лучше всего предварительно усилить биполярными транзисторами, например, так.
Рис. 5. Вариант схемы устройства
На случай острой необходимости управления сетью с переменным током 220В с ШИМ-выхода можно воспользоваться следующей схемой.
Рис. 6. Вариант схемы устройства
Она подойдёт на роль «автоматического диммера» с продвинутыми настройками.
При работе с полевыми транзисторами стоит проявлять особую осторожность, они очень боятся статического электричества. Поэтому необходимо предпринять все меры, чтобы снять статический заряд в процессе работ.
Как рассчитать потери мощности на мосфете
Для этого понадобится сопроводительная документация (даташит) к выбранному полевому транзистору. Здесь стоит отметить, что подбирать мосфет необходимо из серий, помеченных как «Logic Level», они разрабатываются специально для работы с микроконтроллерами.
Из даташита необходимо уточнить график зависимости параметров транзистора, например, для IRF630.
Рис. 7. График зависимости параметров транзистора
При напряжении на затворе в 5 Вольт (см. линия в центре с подписью 5V) и токе в цепи (вертикальная ось координат) 5 А, падение напряжения составит около 2В (горизонтальная ось координат).
То есть сопротивление транзистора можно рассчитать по закону Ома как 2/8=0,25 (Ом).
Тогда мощность будет считаться как P=I 2 R, то есть 5 2 ·0,25 = 25·0,25=6,25 Вт.
При силе тока в 8 А потеря мощности будет составлять уже 35 Вт.
Мнения читателей
Нет комментариев. Ваш комментарий будет первый.
Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:
Технохрень
Опросы
Рубрики
Еще по теме
Подключение Mosfet к Aрдуино
Бывают N и P типов. Картинка поможет:
NPN mosfet подключение к arduino
Тут все без гемора. Вот пара вариантов подключения:
Если надо еще и плавно включать/выключать лампочку, либо не на всю мощность, а только на половину например, можно из ардуино пищать шимом, а между затвором и истоком включить еще конденсатор микрофарад на 300. Это нужно чтобы открыть мосфет на половину.. Однако это подойдет только для маломощной лампочки, потому как полуоткрытый мосфет имеет некислое внутреннее сопротивление и греется как утюг.
В эту схему подойдет к примеру мосфет h6n03l. Но тут есть нюанс в выборе резюков. Тот, который между ардуино и gate – чем больше сопротивление, тем меньше ток на ноге ардуино и меньше вероятность что она задымится. И чем больше сопротивление тем медленнее открывается мосфет. Кароч 150 ом норм для ардуино (по закону ома I = E / R, I = 5 / 150 = 0.033 А — это 33 миллиампера, норм). Зачем он вообще нужен? Дело в том, что затвор (gate) у полевика имеет определенную емкость и является в какой-то мере конденсатором. Так что в момент переключения через затвор проходят большие токи, которые может не выдержать ардуина. Для этого и нужен резистор между gate и пином.
А второй 10 кОм типа подтягивающий резистор – нужен чтобы держать мосфет закрытым и нагрузку выключенной пока порт ардуины в неопределенном состоянии например при загрузке (так называемое Z-состояние).
Но у этой схемы есть косяк – она медленновата. На переключение уйдет 600ns что подходит не для всех задач. Вот фронт и спад.
Желтая – выход с мосфета, зелено-бирюзово-светло-голубая – выход с ШИМ ардуино. Желтая не успевает. Для решения этой проблемы надо поставить парочку транзисторов как тут предлагают http://joost.damad.be/2012/09/dimming-12v-led-strip-with-mosfet-and.html
Но это нужно далеко не всегда и как правило достаточно первой схемы. И кстати есть вариант получше — про него в конце статьи.
PNP mosfet arduino
Если нам надо на нагрузку подать 5 вольт:
Если на мотор или лампочку надо 12 вольт то все немного сложнее. Чтобы открыть мосфет нам надо подать 12 вольт на gate, а при таком варианте наш ардуино задымится. Надо еще один транзистор так:
Тут Q1 – биполярный транзистор – он то и включает 12 вольт на gate Q2, а R1 нужен чтобы ограничить ток чтобы ардуино опять таки не задымилась. Работает все так:
Управлять больше чем 12 вольт можно, например 24 вольтами, если q1 выдержит. Чтобы наверняка можно добавить диод D2:
Рулим 220 вольтами с помощью мосфета
Эта схема диммера для лампочек, с помощью ШИМ можно менять яркость. Подробнее тут http://www.learningelectronics.net/circuits/dimmer-with-mosfet.html
А для нормального управления нагрузкой в 220 вольт вместо мосфетов можно использовать:
Для таких вещей люди специально придумали специальные драйверы типа этих http://voltmaster-samara.ru/catalog/drajvery-mop-i-igbt-tranzistorov
Тут уж народ издевается над МОП транзисторами как хочет
Суть в том, что драйвер нужен как раз для согласования пяти вольт с выводов ардуино (а также других микроконтроллеров) с уровнями, необходимыми для управления затворами мосфетов.
На картинке первые две схемы а) и б) не очень, так как из-за кривых рук разработчика все может задымится. Зато вторые норм.
И кстати если надо использовать ШИМ — то лучше выбрать высокоскоростной драйвер типа TC4420.
Подбор MOSFET для подключения к ардуино
Качаем даташит, например для FQP30N06. Первое на что надо обратить внимание это ток и вольты:
Второе — определить по такой вот диаграмме падение напряжения. Например если мы рулим лампочкой с потреблением 2А, а для управления используем 5 вольт на gate:
Падение напряжения будет где-то 5,4 вольта и нам лучше найти что нибудь менее нагревательное
Третье — надо если используется ШИМ — время открытия и закрытия:
Если прокосячить с частотой, дать большую чем он может вытянуть, то транзюк перегреется.
Управление мощной нагрузкой
“Универсальное” электромагнитное реле
Электромагнитное реле является по сути управляемым механическим выключателем: подали на него ток – оно замкнуло контакты, сняли ток – разомкнуло. Контакты являются именно контактами: металлическими “пятаками”, которые прижимаются друг к другу. Именно поэтому такое реле может управлять как нагрузкой постоянного, так и переменного тока.
Сама катушка реле является неслабой индуктивной нагрузкой, что приводит к дополнительным проблемам (читай ниже), поэтому для управления “голым” реле нам понадобится дополнительная силовая и защитная цепь.
После изучения данного урока вы сами сможете её составить (транзистор и диод), а сейчас мы поговорим о модулях реле: готовая плата, на которой стоит само реле, а также цепи коммутации, защиты и даже оптическая развязка. Такие модули бывают “семейными” – с несколькими реле на борту. Спасибо китайцам за это! Смотрите варианты у меня в каталоге ссылок на Али.
Такое реле сделано специально для удобного управления с микроконтроллера: пины питания VCC (Vin, 5V) и GND подключаются к питанию, а далее реле управляется логическим сигналом, поданным на пин IN. С другой стороны стоит клеммник для подключения проводов, обычно контакты подписаны как NO, NC и COM. Это общепринятые названия пинов кнопок, переключателей и реле:
Подключение нагрузки через реле думаю для всех является очевидным:
Важный момент: катушка реле в активном режиме потребляет около 60 мА, то есть подключать больше одного модуля реле при питании платы от USB не рекомендуется – уже появятся просадки по напряжению и помехи:
На плате, справа от надписи High/Low trigger есть перемычка, при помощи которой происходит переключение уровня. Электромагнитное реле имеет ряд недостатков перед остальными рассмотренными ниже способами, вы должны их знать и учитывать:
Важный момент связан с коммутацией светодиодных светильников и ламп, особенно дешёвых: у них прямо на входе стоит конденсатор, который при резком подключении в цепь становится очень мощным потребителем и приводит к скачку тока. Скачок может быть настолько большим, что 15-20 Ваттная светодиодная лампа буквально сваривает контакты реле и оно “залипает”! Данный эффект сильнее выражен на дешёвых лампах, будьте с ними аккуратнее (за инфу спасибо DAK). При помощи реле можно плавно управлять сильно инерционной нагрузкой, такой как большой обогреватель. Для этого нужно использовать сверхнизкочастотный ШИМ сигнал, у меня есть готовая библиотека. Не забываем, что реле противно щёлкает и изнашивается, поэтому для таких целей лучше подходит твердотельное реле, о котором мы поговорим ниже.
Постоянный ток
Оптопара
Оптопара – отличный элемент, позволяет выполнять две функции: коммутировать нагрузку (пусть и небольшую) и полностью физически развязывает микроконтроллер с ней. Оптопары можно использовать для имитации нажатия кнопок у других внешних устройств, то есть замыкать чисто логический сигнал. Также можно использовать для разрывания питания различных датчиков и модулей в устройстве вместо транзистора. Оптопара состоит из двух частей: светодиод, который мы включаем при помощи микроконтроллера, и выходная часть, которая может быть разной (транзистор, симистор и проч.), таким образом сигнал с микроконтроллера отделяется от нагрузки через луч света, что очень важно при коммутации высоковольтных или каких-то чувствительных цепей. Для управления внешними устройствами надо брать оптопары с транзисторным выходом, например очень распространённую PC814 и её аналоги (FOD814, LTV814 и прочие), при желании можно выковырять почти из любого блока питания. Данная оптопара позволяет коммутировать нагрузку с напряжением до 60 Вольт и током до 50 мА. Покажу вырезку из даташита с этими параметрами, у остальных оптопар параметры будут называться точно так же:
Подключается оптопара следующим способом: светодиодом мы управляем с МК через резистор, а выход подключаем в разрыв нагрузки, соблюдая полярность. Что касается светодиода на управляющем входе оптопары – для него нужен резистор, как считать резистор для светодиода было рассказано в уроке про светодиоды. В большинстве случаев достаточно поставить резистор на 220 Ом, как и для любых светодиодов. Если ток светодиода будет меньше указанного, соответственно уменьшится максимальный ток выхода, что для этой оптопары уже критично (светодиод хочет аж 50 мА). Оптопара не предусмотрена для управления большой нагрузкой, обычно это коммутация других логических цепей, поэтому о токе можно не думать. Подключение нагрузки (условный нагрузочный резистор):
Для управления “кнопкой” другого устройства (фотоаппарат, кофемашина) достаточно подключить оптопару параллельно кнопке. Во избежание замыкания оптопары на кнопку (что сожгёт оптопару) желательно поставить защитный резистор с номиналом 200-1000 Ом. Тут будет две схемы, по сути одинаковые. Перед подключением нужно проверить мультиметром, где у кнопки “плюс”, а где “минус”, так как выход с оптопары у нас полярный.
Существует также интересная оптопара TLP172 с мосфетным выходом, причём неполярным (может коммутировать нагрузку в любую сторону)! Управляет напряжением до 60 Вольт при токе до 400 мА – уже вполне серьёзная игрушка.
Транзистор
Самый компактный способ управлять нагрузкой постоянного тока – транзистор. Транзисторы бывают биполярные и полевые (MOSFET, полевик, ключ). Биполярные уже морально и физически устарели, имеют много характеристик и требуют дополнительного изучения темы, поэтому мы рассмотрим только полевые транзисторы. Схема типовая и выглядит вот так:
Или вот так, конкретно для корпуса to220. Также на этой схеме плата Ардуино питается от внешнего источника в пин Vin:
Полевики бывают и в других корпусах, для подключения по первой принципиальной схеме нужно загуглить распиновку (pinout) на свой конкретный транзистор. Но в основном там всё обстоит вот так:
Что за резисторы?
Я привёл схему, в которой используется N-канальный полевой транзистор, который управляет линией GND. Существуют также P-канальные мосфеты, они управляют линией питания. Такие транзисторы в целом дороже, реже встречаются и имеют высокий порог напряжения открытия, т.е. для их работы придётся ставить ещё один транзистор (биполярный) и с его помощью подавать более высокий сигнал от внешнего источника на затвор P-канального полевика. Поэтому в 99% случаев просто используют более удобные N-канальные ключи. Как выбрать транзистор для своей задачи? Первым делом смотрим на напряжение открытия транзистора (как читать график в даташите – см. видео урок ниже), 100% подойдёт транзистор с пометкой Logic Level в описании или даташите: такие мосфеты точно будут работать на полную катушку от пина МК. Само собой ток и напряжение должны соответствовать (взяты с запасом) для нагрузки, которую будет коммутировать мосфет. Есть ещё параметр сопротивление открытого канала, на этом сопротивлении будет падать напряжение и превращаться в тепло. Для мощных нагрузок нужно рассматривать полевики с низким сопротивлением канала, чтобы сильно не грелись. Приведу свой список мосфетов в двух основных корпусах: выводной to220 и dpack для поверхностного монтажа, в нём “Ток при 3V” и “Ток при 5V” означает максимальный ток через транзистор (на нагрузку) в Амперах при управлении логическим сигналом 3 и 5 Вольт. Максимальное напряжение для нагрузки смотрите у конкретного транзистора, но у всех оно выше 24V. “R” – сопротивление открытого канала в миллиомах (10^-3 Ом). Также полевики отсортированы по увеличению цены в российских магазинах =)
| Маркировка | 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 |
| Маркировка | 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, “+” к любому цифровому пину. Выход реле ставится в разрыв цепи питания нагрузки, как выключатель. Важно не перепутать плюс и минус, потому что внутри реле представляет собой полевой транзистор на радиаторе =)
Переменный ток
Симистор как вкл/выкл
Симистор – радиоэлемент, похожий на транзистор, но может работать на переменном токе. Высокое напряжение – штука опасная, поэтому для управления симистором используется оптопара с симисторным выходом. Простейшая схема подключения выглядит вот так:
Для управления нагрузкой только в режиме вкл/выкл желательно ставить оптопару с детектором нуля (например MOC306x), она будет сама отключать и включать нагрузку только в моменты перехода напряжения в сети через 0, что сильно уменьшает помехи в сети. Также здесь стоят резисторы: 220 Ом – для ограничения тока на светодиод оптопары (смотри характеристики оптопары, как подбирать резистор я писал выше). И резистор между оптопарой и симистором: 220-470 Ом с мощностью 1-2 Вт (будет греться). Симистор нужно брать с хорошим запасом по току, чтобы меньше грелся. Также симисторы бывают серии BTA и BTB, у BTA корпус (металлическая часть) изолирован и рекомендуется брать именно их, чтобы не шарахало током от радиатора. Распиновка компонентов:
У китайцев есть готовые модули с симистором и всей обвязкой. Кстати да, симистор греется под нагрузкой! Наличие радиатора обязательно, начиная с 200 Ватт.
Симистор как диммер
Для плавного управления нагрузкой переменного тока задача сильно усложняется: нужно ловить момент переключения напряжения, засекать время и выключать симистор, отсекая часть синусоиды, это называется фазовым управлением.
Для этой схемы нужна оптопара без детектора нуля, например серии MOC302x. Схема такой поделки может выглядеть вот так:
Резисторы 51к обязательно мощные, так как на них будет выделяться 1 Ватт: гасим лишнее напряжение, чтобы не сжечь светодиод оптопары детектора нуля. Также готовый модуль можно купить на Али. Выглядит он вот так и имеет пины питания, пин контроля симистора и вывод детектора нуля. Как со всем этим работать – смотрите видос ниже:
Где-то существует китайская библиотека для управления таким модулем, но она мне не очень понравилась. Привожу два примера для ручного управления таким диммером на базе библиотеки GyverTimers: одноканальный и многоканальный. В многоканальном режиме достаточно подключить к Ардуино выход детектора нуля только с одного модуля, а вот управляющие пины уже указать в скетче. Рассмотренные ниже примеры можно чуть оптимизировать, заменив digitalWrite() на быстрый аналог.























