Ардуино управление мощной нагрузкой. Подключение мосфета к ардуино

Для системы «Умный дом» основной задачей является управление бытовыми приборами с управляющего устройства будь то микроконтроллер типа Ардуино, или микрокомпьютер типа Raspberry PI или любое другое. Но сделать этого напрямую не получится, давайте разберемся как управлять нагрузкой 220 В с Ардуино.

Для управления цепями переменного тока средств микроконтроллера недостаточно по двум причинам:

1. На выходе микроконтроллера формируется сигнал постоянного напряжения.

2. Ток через пин микроконтроллера обычно ограничен величиной в 20-40 мА.

Мы имеем два варианта коммутации с помощью реле или с помощью симистора. Симистор может быть заменен двумя включенными встречно-параллельно тиристорами (это и есть внутренняя структура симистора). Давайте подробнее рассмотрим это.

Управление нагрузкой 220 В с помощью симистора и микроконтроллера

Внутренняя структура симистора изображена на картинке ниже.

Тиристор работает следующим образом: когда к тиристору приложено напряжение в прямом смещении (плюс к аноду, а минус к катоду) ток через него проходить не будет, пока вы не подадите управляющий импульс на управляющий электрод.

Я написал импульс не просто так. В отличие от транзистора тиристор является ПОЛУУПРАВЛЯЕМЫМ полупроводниковым ключом. Это значит, что при снятии управляющего сигнала ток через тиристор продолжит протекать, т.е. он останется открытым. Чтобы он закрылся нужно прервать ток в цепи или сменить полярность приложенного напряжения.

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

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

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

Таким образом, сигнал включает внутренний светодиод оптопары, она открывает симистор, который и подает управляющий сигнал на силовой симистор T1. В качестве оптодрайвера может быть использован MOC3063 и подобные, например, на фото ниже изображен MOC3041.

Zero crossing circuit - цепь детектора перехода фазы через ноль. Нужна для реализации разного рода симисторных регуляторов на микроконтроллере.

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

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

Реле и А рдуино

Для управления реле с А рдуино нужно использовать дополнительный транзистор для усиления тока.

Обратите внимание, использован биполярный транзистор обратной проводимости (NPN-структура), это может быть отечественный КТ315 (всеми любимый и всем известный). Диод нужен для гашения всплесков ЭДС самоиндукции в индуктивности, это нужно чтобы транзистор не вышел из строя от высокого приложенного напряжения. Почему это возникает, объяснит закон коммутации: "Ток в индуктивности не может измениться мгновенно".

А при закрытии транзистора (снятии управляющего импульса) энергии магнитного поля накопленной в катушке реле необходимо куда-то деваться, поэтому и устанавливают обратный диод. Еще раз отмечу, что диод подключен в ОБРАТНОМ направлении, т.е. катодом к плюсу, анодом к минусу.

Такую схему можно собрать своими руками, что значительно дешевле, плюс вы можете использовать , рассчитанное на любое постоянное напряжение.

Или купить готовый модуль или целый шилд с реле для Ардуино :

На фото изображен самодельный шилд, кстати, в нем использованы для усиления тока КТ315Г, а ниже вы видите такой же шилд заводского исполнения:

Заключение

Безопасное управление нагрузкой переменного тока подразумевает прежде всего вся описанная выше информация справедлива для любого микроконтроллера, а не только платы Ардуино .

Главная задача - обеспечить нужные напряжение и ток для управления симистором или реле и гальваническая развязка цепей управления и силовой цепи переменного тока.

Кроме безопасности для микроконтроллера, таким образом, вы подстраховываете себя, чтобы при обслуживании не получить электротравму. При работе с высоким напряжением нужно соблюдать все правила техники безопасности, соблюдать ПУЭ и ПТЭЭП.

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

Алексей Бартош

МОП (по буржуйски MOSFET ) расшифровывается как Метал-Оксид-Полупроводник из этого сокращения становится понятна структура этого транзистора.

Если на пальцах, то в нем есть полупроводниковый канал который служит как бы одной обкладкой конденсатора и вторая обкладка — металлический электрод, расположенный через тонкий слой оксида кремния, который является диэлектриком. Когда на затвор подают напряжение, то этот конденсатор заряжается, а электрическое поле затвора подтягивает к каналу заряды, в результате чего в канале возникают подвижные заряды, способные образовать электрический ток и сопротивление сток — исток резко падает. Чем выше напряжение, тем больше зарядов и ниже сопротивление, в итоге, сопротивление может снизиться до мизерных значений — сотые доли ома, а если поднимать напряжение дальше, то произойдет пробой слоя оксида и транзистору хана.

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

Недостаток же вытекает из его емкостного свойства — наличие емкости на затворе требует большого зарядного тока при открытии. В теории, равного бесконечности на бесконечно малом промежутки времени. А если ток ограничить резистором, то конденсатор будет заряжаться медленно — от постоянной времени RC цепи никуда не денешься.

МОП Транзисторы бывают P и N канальные. Принцип у них один и тот же, разница лишь в полярности носителей тока в канале. Соответственно в разном направлении управляющего напряжения и включения в цепь. Очень часто транзисторы делают в виде комплиментарных пар. То есть есть две модели с совершенно одиннаковыми характеристиками, но одна из них N, а другая P канальные. Маркировка у них, как правило, отличается на одну цифру.


У меня самыми ходовыми МОП транзисторами являются IRF630 (n канальный) и IRF9630 (p канальный) в свое время я намутил их с полтора десятка каждого вида. Обладая не сильно габаритным корпусом TO-92 этот транзистор может лихо протащить через себя до 9А. Сопротивление в открытом состоянии у него всего 0.35 Ома.
Впрочем, это довольно старый транзистор, сейчас уже есть вещи и покруче, например IRF7314 , способный протащить те же 9А, но при этом он умещается в корпус SO8 — размером с тетрадную клеточку.

Одной из проблем состыковки MOSFET транзистора и микроконтроллера (или цифровой схемы) является то, что для полноценного открытия до полного насыщения этому транзистору надо вкатить на затвор довольно больше напряжение. Обычно это около 10 вольт, а МК может выдать максимум 5.
Тут вариантов три:


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

Выбор транзистора тоже не очень сложен, особенно если не заморачиваться на предельные режимы. В первую очередь тебя должно волновать значение тока стока — I Drain или I D выбираешь транзистор по максимальному току для твоей нагрузки, лучше с запасом процентов так на 10. Следующий важный для тебя параметр это V GS — напряжение насыщения Исток-Затвор или, проще говоря, управляющее напряжение. Иногда его пишут, но чаще приходится выглядывать из графиков. Ищешь график выходной характеристики Зависимость I D от V DS при разных значениях V GS . И прикидыываешь какой у тебя будет режим.

Вот, например, надо тебе запитать двигатель на 12 вольт, с током 8А. На драйвер пожмотился и имеешь только 5 вольтовый управляющий сигнал. Первое что пришло на ум после этой статьи — IRF630. По току подходит с запасом 9А против требуемых 8. Но глянем на выходную характеристику:

Если собираешься загнать на этот ключ ШИМ, то надо поинтересоваться временем открытия и закрытия транзистора, выбрать наибольшее и относительно времени посчитать предельную частоту на которую он способен. Зовется эта величина Switch Delay или t on ,t off , в общем, как то так. Ну, а частота это 1/t. Также не лишней будет посмотреть на емкость затвора C iss исходя из нее, а также ограничительного резистора в затворной цепи, можно рассчитать постоянную времени заряда затворной RC цепи и прикинуть быстродействие. Если постоянная времени будет больше чем период ШИМ, то транзистор будет не открыватся/закрываться, а повиснет в некотором промежуточном состоянии, так как напряжение на его затворе будет проинтегрировано этой RC цепью в постоянное напряжение.

При обращении с этими транзисторами учитывай тот факт, что статического электричества они боятся не просто сильно, а ОЧЕНЬ СИЛЬНО . Пробить затвор статическим зарядом более чем реально. Так что как купил, сразу же в фольгу и не доставай пока не будешь запаивать. Предварительно заземлись за батарею и надень шапочку из фольги:).

Научно-технические

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

"Научно-технические статьи" - подборка научно-технических статей радиоэлектронной тематики: новинки электронных компонентов , научные разработки в области радиотехники и электроники , статьи по истории развития радиотехники и электроники , новые технологии и методы построения и разработки радиоэлектронных устройств, перспективные технологии будущего, аспекты и динамика развития всех направлений радиотехники и электроники , обзоры выставок радиоэлектронной тематики.

Программируемый микроконтроллер 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 (Ом).

Порой наступает такой момент, когда пользователь хочет управлять мощным устройством с помощью . Мы все знаем, что Arduino может выдать на каждом из своих выходов 20 мА (максимум 40 мА). Хорошо, но что делать, когда мы хотим управлять, например двигателем постоянного тока.

В этом случае мы можем использовать, например, биполярный транзистор, если ток не слишком большой, мост L293D или MOSFET транзистор.

Что такое MOSFET?

В нашем проекте мы будем использовать MOSFET транзистор STP16NF06L, который имеет канал N-типа.

MOSFET — полевой транзистор, имеющий 3 ножки: исток (S), затвор (G) и сток (D). Ток протекает между истоком и стоком, по так называемому каналу. Величина протекающего тока зависит от управляющего напряжения, подаваемого на затвор — исток.

MOSFET-транзисторы являются быстродействующими по сравнению с биполярными транзисторами, так как процессы, происходящие в них являются чисто электростатическими. Основным фактором, влияющим на время переключения является наличие емкости затвора.

Подключение MOSFET к Arduino

Затвор (G) MOSFET транзистора должен быть подключен к Arduino. В целом можно сказать, что исток (S) должен быть подключен к минусу нашей схемы, а сток (D) подсоединен к минусу нашего объекта, которым мы собираемся управлять (например, лампочка, двигатель). По мимо этого, стоит подключить резистор между затвором (G) и истоком (S). Это даст нам уверенность в том, что на затворе будет низкий уровень в тот момент, когда от Arduino не будет управляющего сигнала.

Более того, в случае, если у нас произошло повреждение кабеля, у нас будет уверенность в том, что на затворе не будет неопределенного состояния, который может вызвать включение и выключение управляемого объекта.

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

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

Со временем каждый пользователь Arduino задумывается об управлении не только светодиодами и устройствами с напряжением до 5 вольт, но и об управлении соленоидами, моторами, светодиодными лентами и т.д., которые используют 12 и больше вольт. В этой статье будет рассмотрено как можно работать с высоким напряжением с использованием MOSFET и ардуино .

В этой статье будет рассматриваться MOSFET транзистор - металл-оксид-полупроводник полевой транзистор, в частности** RFP30N06LE**, но так же можно работать и с другими.

Начнём с того, что MOSFET это транзистор, но особого типа.
Транзисторы имеют 3 вывода, которые имеют 2 простые функции, первая - переключение, вторая - усиление (в данном примере рассматривается первая функция - переключатель). Выходы называются следующим образом: Вход (Источник), он же Source , Выход (Сток) - Drain , и Управление (Ворота, Затвор) - Gate . При отправке сигнала высокого уровня к Gate (управляющий вывод), транзистор включается и позволяет току течь от источника (Source) к стоку (Drain).

Таким образом, мы подключим наш мотор, соленоид или лампу к V +, но не к земле (V-). Землю мы подключаем к стоку (Drain) транзистора. Когда наш Arduino посылает сигнал высокого уровня на Gate транзистора, он переключает транзистор (соединяет Source и Drain) и замыкает цепь для двигателя, соленоида, или лампы.

Подключаем мотор к Arduino (схема 1)

Подключаем соленоид к Arduino (схема 2)

Подключаем ламу к Arduino (схема 3)

Подключение / Зачем диод используется?

Эта схема довольно проста. Единственная часть, которая вызывает вопросы - использование стягивающего резистора (Pull down) . Резистор удерживает низкий уровень на Gate, когда Arduino не посылает сигнал высокого уровня. Дело в том, что если плохие провода, например, сигнал может плавать, и когда Arduino не посылает сигнал, остаточное напряжение может оставаться и транзистор может самопроизвольно включаться. Резистор же стягивает остаточное напряжение к земле.

Так же на схемах 1 и 2 вы можете заметить диод. При подключении устройства с катушкой (Coil), будь то реле, соленоид или мотор всегда используйте диод. Что будет если мы его не будем использовать? Когда вы перестаёте питать катушку обратное напряжение, бывает до нескольких сотен вольт, направляется обратно. Это длится всего несколько микросекунд, но этого достаточно, чтобы убить наш MOSFET . Так что этот диод позволяет току проходить в одну сторону, как правило, в неправильной ориентации и ничего не делает. Но когда происходит скачок напряжения ток течет в противоположном направлении, диод позволяет ему течь обратно на спираль, а не на транзистор.

Нам понадобится диод достаточно быстро реагирующий на отдачу, и достаточно сильный, чтобы взять на себя нагрузку. Нам подойдут диоды 1N4001 или SB560 . Если вам нужна дополнительная защита, то можно использовать оптоизолятор между Arduino и транзистором. Оптоизолятор изолирует обе стороны цепи, и высокое напряжение не сможет вернуться в микроконтроллер, и не убьёт его.

Так же обязательно убедитесь, что подключаете диод правильно! Полосой (обычно серебристой) к плюсу (V+), иначе толку от него будет ноль, и может сделать даже хуже.

Недостатки / Ограничения

Транзисторы, такие как RFP30N06LE подходят для управления мощных устройств с вашего Arduino , но у них есть некоторые ограничения. Это текущая конфигурация имеет смысл только для переключения DC ток, так что не пытайтесь это с AC источником, а также MOSFET -транзисторы имеют ограничения, такие как напряжение и силу тока. RFP30N06LE может обрабатывать переключения до 60В, а сила тока ограничена 30А (с радиатором и правильным подключением), так же крайне важно использовать теплоотвод при силе тока более нескольких ампер, так как в таком случае при работе транзистора выделяется достаточно большое количество тепла.

Обычно можно просто припаять изогнутый кусочек металла на к спинке, просто чтобы рассеять тепло. Обратите внимание, что при использовании нескольких транзисторов не припаивайте к общему радиатору, используйте на каждый транзистор отдельный радиатор, так как у этих транзисторов спинка соединена с Выходом (Drain)! Это важно. Так же хочу отметить, что для AC тока лучше используйте реле.

Fade it / Используем ШИМ

Вы знаете, на Arduino есть PWM (ШИМ) выходы, почему бы нам ими не воспользоваться? Да, PWM - это то, что позволяет использовать analogWrite (PIN, значение). PWM на самом деле не аналоговый выход. Arduino действительно пульсирует (очень быстро) от 0 до 5V так что среднее напряжение находится где-то между 0 и 5в. Мы можем подключить к PWM выходу наш транзистор и управлять яркостью света, скоростью мотора и т.д. так, как будто мы подключили их напрямую к Arduino . Для этого нужно просто убедиться, что транзистор подключен к PWM выходу Arduino .

Код / Скетч для Arduino

Вам вряд ли пригодится этот код, вы просто отправить сигнал высокого уровня к Gate и БАМ... Оно работает. Но я набросал код для вас, поэтому вы можете потестировать его с использованием ШИМ . (Имеет смысл только для двигателя или лампочки, не для соленоида).

////////////////////////////////////////////////////////////////// //Released under the MIT License - Please reuse change and share //Simple code to output a PWM sine wave signal on pin 9 ////////////////////////////////////////////////////////////////// #define fadePin 3 void setup(){ pinMode(fadePin, OUTPUT); } void loop(){ for(int i = 0; i<360; i++){ //convert 0-360 angle to radian (needed for sin function) float rad = DEG_TO_RAD * i; //calculate sin of angle as number between 0 and 255 int sinOut = constrain((sin(rad) * 128) + 128, 0, 255); analogWrite(fadePin, sinOut); delay(15); } }