Дата публикации

Автор статьи: Rinat Khairulin

22

MOSFET для Arduino и ESP32: как выбрать logic-level транзистор, правильно подключить и избежать нагрева

Как выбрать MOSFET для Arduino и ESP32, почему важен logic-level, чем VGS(th) отличается от рабочего напряжения затвора, как рассчитать нагрев и подключить мотор, реле, клапан или светодиодную ленту.

Какой MOSFET нужен для Arduino и ESP32

Для управления мотором, насосом, клапаном, реле или светодиодной лентой от Arduino и ESP32 обычно используют N-канальный MOSFET в схеме с общим истоком. Микроконтроллер управляет только затвором транзистора, а ток нагрузки проходит между стоком и истоком.

Главная ошибка при выборе MOSFET – смотреть только на максимальный ток в характеристиках. Надпись вроде «50 А» ещё не означает, что транзистор сможет нормально коммутировать 5-10 А от GPIO микроконтроллера.

Для Arduino и особенно ESP32 важен logic-level MOSFET – транзистор, рассчитанный на полноценное открытие при сравнительно низком напряжении затвора.

Arduino Uno и Nano обычно формируют логический HIGH около 5 В. ESP32 работает с логическими уровнями 3,3 В. Поэтому MOSFET, который хорошо работает при 5 В на затворе, не обязательно будет нормально работать от ESP32.

При выборе в даташите нужно искать не только максимальные параметры, а значение сопротивления открытого канала RDS(on) и напряжение затвора, при котором оно гарантируется.

ПараметрЧто показываетНа что смотреть
VDSМаксимальное напряжение сток-истокДолжно иметь запас относительно напряжения нагрузки
IDДопустимый ток стокаНе использовать как единственный критерий выбора
RDS(on)Сопротивление полностью открытого MOSFETЧем меньше, тем ниже потери и нагрев
VGSНапряжение затвор-истокДля ESP32 желательно наличие характеристик при 2,5-3,3 В
VGS(th)Порог начала открытияНе означает полноценное открытие транзистора
QgПолный заряд затвораВажен при PWM и высокой частоте переключений
PdДопустимая рассеиваемая мощностьЗависит от корпуса, температуры и охлаждения

Если в даташите RDS(on) указан только при VGS = 10 В, такой MOSFET нельзя автоматически считать подходящим для GPIO Arduino или ESP32.

Для ESP32 особенно удобно искать транзисторы, у которых производитель прямо приводит RDS(on) при VGS = 2,5 В или близком напряжении. Для Arduino подходят многие модели, рассчитанные на VGS = 4,5-5 В.

Подробнее о том, что происходит внутри силового ключа, можно посмотреть в статье [url href=/articles/silovye-klyuchi-i-drayvery']силовые ключи и драйверы[/url].

Почему VGS(th) не показывает, что MOSFET полностью открыт

Сравнение VGS(th) и полноценного открытия N-канального MOSFET по сопротивлению RDS(on).

Параметр VGS(th) часто становится причиной неправильного выбора MOSFET. Например, в характеристиках может быть указано VGS(th) = 1-2,5 В. Возникает логичный вывод: если ESP32 выдаёт 3,3 В, транзистор точно откроется.

Формально он действительно откроется. Но это ещё не означает, что через него можно безопасно пропустить несколько ампер.

VGS(th) – это напряжение, при котором канал только начинает проводить ток. Производитель обычно измеряет порог при очень небольшом токе. В реальной силовой схеме MOSFET должен находиться значительно дальше от этого режима.

Именно поэтому для выбора нужно смотреть RDS(on).

Условный пример:

Характеристика MOSFETЗначение
VGS(th)1-2,5 В
RDS(on) при VGS = 10 В15 мОм
RDS(on) при VGS = 4,5 В20 мОм
RDS(on) при VGS = 2,5 В28 мОм

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

Совсем другая ситуация, если в даташите есть красивое VGS(th) = 2 В, но RDS(on) гарантируется только при 10 В. От ESP32 такой MOSFET может открыться лишь частично.

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

Именно поэтому некоторые схемы выглядят исправными без нагрузки, но MOSFET начинает быстро нагреваться после подключения мотора или светодиодной ленты.

Схема подключения N-канального MOSFET к GPIO

Схема подключения N-канального MOSFET к ESP32 для управления мотором.

Для обычного включения нагрузки используется низковольтная схема коммутации по минусу – low-side switch. Нагрузка постоянно подключена к плюсу источника питания, а MOSFET соединяет её с общим минусом.

Типовая схема выглядит так:

+12 В / +24 В Нагрузка Drain GPIO ── 100 Ом ── Gate N-MOSFET │ │ 10 кОм │ │ Source │ │ GND контроллера ─┴─────┴── GND источника питания

Резистор между GPIO и Gate обычно имеет сопротивление порядка 47-220 Ом. Его задача – ограничить кратковременный ток зарядки затвора и уменьшить звон и помехи при переключении.

Резистор Gate-GND, например 10 кОм, удерживает MOSFET закрытым, когда GPIO ещё не настроен, микроконтроллер перезагружается или питание контроллера отключено.

Без него затвор может остаться электрически «висящим». MOSFET имеет очень высокое входное сопротивление, поэтому накопленного на затворе заряда иногда достаточно для частичного или полного открытия ключа.

Source подключают к общему GND, Drain – к нагрузке.

Если нагрузка питается от отдельного блока на 12 или 24 В, а Arduino или ESP32 – от USB или другого источника, в такой схеме их земли необходимо соединить.

Если требуется разрывать именно положительный провод, схема меняется. Для верхнего ключа используют P-канальный MOSFET либо N-канальный MOSFET со специальным драйвером затвора.

Для простого управления нагрузкой от Arduino или ESP32 схема low-side обычно получается проще и надёжнее.

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

Откуда берётся нагрев MOSFET

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

При постоянном токе основные потери можно приблизительно оценить по формуле:

P = I² × RDS(on)

Например, через MOSFET проходит 5 А, а сопротивление открытого канала составляет 20 мОм, то есть 0,02 Ом.

P = 5² × 0,02 = 0,5 Вт

Полватта для крупного корпуса может оказаться приемлемой мощностью. Для маленького SMD-корпуса температура уже может заметно увеличиться.

Если ток возрастёт до 10 А:

P = 10² × 0,02 = 2 Вт

Ток увеличился в 2 раза, а потери выросли в 4 раза.

Ток нагрузкиRDS(on)Потери на MOSFET
1 А20 мОм0,02 Вт
3 А20 мОм0,18 Вт
5 А20 мОм0,50 Вт
8 А20 мОм1,28 Вт
10 А20 мОм2,00 Вт

Это только приблизительный расчёт статических потерь.

На практике ситуация сложнее: RDS(on) увеличивается с ростом температуры. Значение в таблице даташита обычно связано с определёнными условиями измерения, поэтому нельзя считать, что сопротивление останется неизменным при нагреве кристалла.

Кроме того, при PWM возникают динамические потери во время переключения.

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

Поэтому сильный нагрев может иметь несколько причин:

  • слишком большое RDS(on);
  • недостаточное напряжение Gate;
  • большой ток нагрузки;
  • высокий пусковой ток двигателя или насоса;
  • слишком медленное переключение;
  • высокая частота PWM;
  • недостаточное охлаждение корпуса;
  • слишком маленькая площадь меди вокруг SMD MOSFET.

Особенно важно учитывать пусковой ток двигателей. Если двигатель потребляет 2 А в установившемся режиме, это ещё не означает, что MOSFET достаточно рассчитывать на 2 А. При старте и блокировке ротора ток может быть значительно выше.

Управление MOSFET через PWM

MOSFET хорошо подходит не только для включения и выключения нагрузки, но и для регулирования мощности через PWM.

Таким способом можно менять яркость светодиодной ленты, скорость DC-мотора, мощность нагревателя и производительность некоторых насосов или вентиляторов.

Принцип PWM подробно разобран в статье ШИМ-сигнал простыми словами.

Для MOSFET здесь появляется ещё один важный параметр – заряд затвора Qg.

Затвор MOSFET электрически ведёт себя примерно как ёмкостная нагрузка. Чтобы открыть транзистор, GPIO должен зарядить эту ёмкость. Чтобы закрыть – разрядить.

Чем крупнее и мощнее MOSFET, тем больше может быть заряд затвора.

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

Если переключение происходит слишком медленно, MOSFET больше времени проводит в промежуточном состоянии и сильнее греется.

Поэтому огромный MOSFET на условные 100 А не всегда является хорошим выбором для нагрузки на 2-3 А. У него может быть очень низкое RDS(on), но большой заряд затвора, с которым GPIO работает хуже, чем с компактным logic-level MOSFET.

РежимЧто важнее
Простое ON/OFFНизкое RDS(on), подходящее VGS
Медленный PWMRDS(on) и нормальное открытие от GPIO
Высокая частота PWMRDS(on), Qg и скорость переключения
Большой MOSFET и высокий токЧасто требуется драйвер затвора
Несколько MOSFET одновременноНужно учитывать суммарную нагрузку на GPIO и динамику переключения

Для небольшого logic-level MOSFET и умеренной частоты PWM управление непосредственно от GPIO часто вполне работоспособно.

Если используется мощный транзистор с большим Qg, высокая частота PWM или требуется очень быстрое переключение, между микроконтроллером и MOSFET устанавливают gate driver.

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

Защита при управлении мотором, реле и электромагнитным клапаном

Мотор, катушка реле, соленоид и электромагнитный клапан являются индуктивными нагрузками. При отключении тока энергия, накопленная в магнитном поле катушки, должна куда-то уйти.

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

Для обычной DC-катушки параллельно нагрузке ставят защитный диод.

+12 В ┌────── Нагрузка ──────┐ │ │ │ Drain │ │ └─────|<|──────────────┤ MOSFET диод │ Source GND

При нормальной работе диод включён в обратном направлении и ток через него не проходит.

После закрытия MOSFET полярность напряжения на катушке меняется, диод открывается и создаёт путь для затухающего тока.

Диод выбирают с учётом:

  • тока нагрузки;
  • обратного напряжения;
  • скорости переключения;
  • частоты включений;
  • температуры.

Для небольших реле и клапанов требования одни, для мощного DC-мотора на несколько ампер – совершенно другие.

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

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

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

Типичные ошибки при подключении MOSFET

Большинство проблем с MOSFET в проектах Arduino и ESP32 связано не с неисправным транзистором, а с несколькими повторяющимися ошибками.

ПроблемаПричинаЧто проверить
MOSFET сильно греетсяНедостаточное напряжение затвораRDS(on) именно при 3,3 или 5 В
Нагрузка работает слабоMOSFET открыт частичноНе ориентироваться на VGS(th)
Нагрузка сама включается при стартеGate остаётся плавающимДобавить Gate-GND 10 кОм
Не работает отдельный БП нагрузкиНет общей землиСоединить GND контроллера и силового источника
ESP32 перезагружаетсяПросадка питания или помехиПитание, разводка GND, конденсаторы, пусковой ток
MOSFET погибает после выключения мотораИндуктивный выбросПроверить защитный диод или TVS
Греется только при PWMМедленное переключение GateQg, частота PWM, резистор Gate, драйвер
MOSFET всегда включёнПерепутаны выводы или повреждён ключПроверить распиновку конкретного корпуса
На нагрузке не полное напряжениеКлюч установлен не в той конфигурацииПроверить Drain, Source и схему high-side/low-side

Особенно опасно считать распиновку MOSFET универсальной. У транзисторов в одинаковых на вид корпусах расположение Gate, Drain и Source может отличаться. Перед монтажом нужно открыть даташит именно используемой модели.

Ещё одна распространённая ошибка – устанавливать N-канальный MOSFET сверху нагрузки и подавать на Gate обычные 3,3 или 5 В относительно земли.

По мере роста напряжения на Source разность VGS уменьшается, транзистор перестаёт нормально открываться. Для полноценного N-MOSFET high-side ключа напряжение Gate должно быть выше напряжения Source, поэтому обычно требуется драйвер.

Не менее важно учитывать ток самой нагрузки не только в штатном режиме.

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

Поэтому MOSFET выбирают не только под цифру, которую показывает мультиметр после стабилизации схемы.

Как проверить выбранный MOSFET перед сборкой схемы

Перед покупкой или установкой MOSFET достаточно последовательно проверить несколько параметров.

  1. Определите напряжение нагрузки – например, 5, 12 или 24 В.
  1. Определите рабочий и пусковой ток. Для двигателя, насоса, клапана и другой динамической нагрузки рабочий ток не показывает всю картину.
  1. Проверьте максимальное VDS MOSFET. Оно должно быть выше напряжения питания с разумным запасом, особенно при индуктивной нагрузке.
  1. Найдите в даташите RDS(on).
  1. Посмотрите, при каком VGS производитель гарантирует это сопротивление. Для ESP32 особенно важны характеристики при низком напряжении Gate.
  1. Приблизительно рассчитайте потери по формуле I² × RDS(on).
  1. Если используется PWM, проверьте Qg и оцените, сможет ли GPIO достаточно быстро переключать выбранный транзистор.
  1. Для мотора, реле, клапана или соленоида предусмотрите защиту от индуктивного выброса.
  1. Установите резистор Gate-GND, чтобы нагрузка оставалась выключенной во время запуска микроконтроллера.
  1. Проверьте распиновку Gate, Drain и Source именно по даташиту вашей модели.

Для типичной нагрузки постоянного тока схема в итоге получается простой: GPIO управляет затвором, MOSFET коммутирует силовой ток, а микроконтроллер не пропускает этот ток через себя.

При этом хороший MOSFET не обязательно должен быть самым большим или иметь максимальный ток в сотни ампер. Для Arduino и ESP32 часто важнее другое – насколько хорошо транзистор открывается от реальных 3,3 или 5 В и каким будет его сопротивление канала в этом режиме.

Если после сборки MOSFET заметно нагревается, это полезный диагностический признак. Нужно проверить не только радиатор, а сначала VGS, RDS(on), реальный ток нагрузки и режим переключения. Очень часто проблема находится именно там.

Товары по теме

Связанные категории

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

Комментарии (0)