Полевой транзистор, он же мосфет (MOSFET) – электронный компонент, позволяющий при помощи небольшого напряжения и тока с пина МК управлять мощной нагрузкой постоянного тока. Может использоваться с ШИМ сигналом для "плавного" управления скоростью моторов и вентиляторов, яркостью светодиодных лент, мощностью нагрева нагревательного элемента и так далее.
![]() |
В наборе GyverKIT | START | IOT | EXTRA |
---|---|---|---|---|
MOSFET | ✔ |
Подключение к Arduino #
Рассмотрим подключение N-канального мосфета, т.к. P-канальные на практике в таком виде не используются - они дороже, имеют более низкие характеристики, схема подключения сложнее.
- Затвор (gate) - управляющий пин мосфета подключается к любому цифровому пину МК через токоограничивающий резистор на 100-200 Ом (мощность любая). Он выполняет защитную функцию: затвор полевика представляет собой конденсатор, в момент открытия затвора конденсатор начнёт заряжаться и в цепи пойдёт большой ток - практически короткое замыкание, который может повредить пин МК. Резистор просто ограничивает ток в цепи пин-затвор и спасает пин от скачков тока. В целом можно его не ставить, но когда-нибудь оно обязательно сломается =)
- Затвор подтягивается к GND резистором на 5-50 кОм (мощность любая). Если случится так, что МК выключен или сигнальный провод от него отвалился - на затвор будут приходить случайные наводки и он может случайно открыться. Если в этот момент будет подключен источник питания - нагрузка тоже включится! Восстание машин начнётся именно с этого момента. Подтягивающий резистор позволяет "прижать" затвор, чтобы он не открылся сам по себе
- Сток (drain) мосфета подключается к GND нагрузки
- Исток (source) мосфета подключается к GND питания
- VCC питания подключается к VCC нагрузки, GND соединяется с GND МК
N-канальный мосфет по сути замыкает линию GND, а питание подключается к нагрузке напрямую:
Выбор транзистора #
По сути МК может управлять любым транзистором, но с дополнительными компонентами в схеме (драйвер, дополнительный транзистор, и т.д.). Мы же хотим подключить мосфет напрямую к МК, поэтому нужно понимать, что будет происходить и как оно работает. Пин МК может выдавать логический уровень - обычно 5V (AVR) и 3.3V (ESP, STM).
Напряжение коммутации #
Максимальное напряжение, которое может пропустить через себя транзистор, часто указано в названии товара или в самом начале характеристик. В документации называется Vds - Drain-to-Source Voltage.
Напряжение открытия #
Полевой транзистор управляется напряжением: чем выше напряжение - тем сильнее "открывается" транзистор, тем ниже его сопротивление и тем выше ток, который он сможет через себя пропустить. Некоторые транзисторы начинают открываться с 7 Вольт, т.е. МК с логическим уровнем 5V даже не сможет его открыть.
- Если в названии-описании мосфета есть фраза Logic Level, то он подойдёт лучше остальных
- Лучше сразу смотреть низковольтные транзисторы (Vds), у них напряжение открытия ниже. Например между 55 и 100V лучше смотреть 55V
- Открываем график Typical Transfer Characteristics (Id от Vgs) и смотрим ток при своём напряжении пина
Примеры:
- При 5V откроется на 3А, при 3.3 не откроется
- При 5V откроется на ~25А, при 3.3 не откроется
- При 5V откроется на 200А, при 3.3 на ~80А
Этот график показывает возможности кристалла по коммутации тока, но вовсе не означает, что если на третий транзистор мы подадим 3.3V, то он сможет держать 80А - важны также другие параметры.
Сопротивление канала #
Может быть явно указано в характеристиках как Rds, иногда бывает указано для нескольких напряжений. Вот например указано для 4.5V на затворе и 12А через транзистор:
То есть 5.8 миллиом на 12А при коммутации напрямую от МК (4.5V на затвор с пина). На транзисторе будет рассеиваться мощность Id * Id * Rds = 12 * 12 * 0.0058 = 0.8
Вт.
Для других условий нужно смотреть график Typical Output Characteristics (Id от Vds) и найти на нём линию, которая отвечает за нужное напряжение на затворе. Вот график от транзистора, с которого взята табличка выше, стрелкой отмечена точка пересечения линии 4.5V с током ~12А (выходит за график):
По нижней оси указано падение напряжения на транзисторе, т.е. при наших условиях имеем примерно 0.1V. Значит сопротивление затвора будет примерно Vds / Id = 0.1 / 12 = 0.008
Ом, что примерно соответствует таблице выше.
Допустим, нам нужно коммутировать этим же транзистором 30А, тем же напряжением на затворе (4.5V). Смотрим график:
Получается на транзисторе упадёт около 0.17V, значит будет выделяться мощность Id * Vds = 30 * 0.17 = 5.1
Вт.
Посмотрим более слабый транзистор. Допустим, нам надо коммутировать ~12А (шкала логарифмическая) напряжением на затворе 5V:
Падение напряжения составит ~0.31V, значит сопротивление канала 0.31 / 12 = 0.026
Ом, а мощность 12 * 0.31 = 3.72
Вт. Предыдущий транзистор на такой же нагрузке грелся с мощностью 0.8 Вт, т.е. он в 5 раз лучше для этой задачи!
Нагрев #
Вот предельная рассеиваемая мощность на воздухе для разных корпусов - при такой мощности транзистор очень горячий:
- TO220: 1 Вт
- Dpak: 0.6 Вт
- TO92: 0.6 Вт
- SOT23: 0.3 Вт
В то же время, TO220 замечательно ставится на внешний радиатор и кратно увеличивает отдачу мощности, а Dpak обычно паяется на плату на большой медный полигон с переходами, что увеличивает предел на пару ватт, а также сверху может располагаться радиатор.
Температуру корпуса при известной мощности можно вычислить по следующей формуле: T = Ta + Rja * P
, где Ta
- температура воздуха, Rja
- параметр из даташита, P
- мощность в Вт.
У транзистора из последнего расчёта выше (нагрузка 12 А) Rja = 62, мощность у нас получилась 3.72 Вт: 25 + 62 * 3.72 = 255
градусов - транзистор расплавился. Для транзистора, у которого мы брали сопротивление из таблицы, Rja = 110 на воздухе и 50 при монтаже на печатную плату лёжа. Мощность у нас была 0.8 Вт: 25 + 110 * 0.8 = 113
градусов - горячо, но нормально. При монтаже на печатную плату получится всего 65 градусов.
Ёмкость затвора #
Ещё один важный параметр - ёмкость затвора. Затвор мосфета - это конденсатор, когда мы подаём на него напряжение - он начинает заряжаться, и чем выше ток - тем быстрее. Мы же подключаем затвор к МК через резистор, чтобы уменьшить ток с пина - это увеличивает время зарядки затвора, т.е. он открывается не сразу - в это время сопротивление канала постепенно падает и транзистор нагревается. То же самое происходит при закрытии транзистора. Если он работает в режиме редкого включения и выключения - ничего страшного, нагреться не успеет. Но если транзистор управляется ШИМ сигналом, то при большой ёмкости затвора, слабом токе и высокой частоте ШИМ он может никогда не открываться полностью - сопротивление канала будет большим и транзистор будет сильно греться!
Как это посчитать и какой транзистор выбрать. Нас интересует Ciss (Input Capacitance), его можно взять из графика от Vds (напряжение питания нагрузки):
Например для 12V получим ~3000 и ~2100 пФ для обоих транзисторов соответственно. Затвор полностью зарядится за время, равное 5 * R * C
, где R
- сопротивление резистора с пина МК. У нас 100 Ом: 5 * 100 * 3000 * 10^-12 = 1.5
микросекунды, а для 2100 получится 1 микросекунда. Если транзистор управляется ШИМ с частотой 20 кГц, то условно на 50% заполнения время нахождения затвора в одном состоянии составит 1000000 / 20000 / 2 = 25
микросекунд. Получается, что из 25 микросекунд одну микросекунду транзистор будет открываться - нормально, но на заполнении, близком к 0 или 100% уже будет неполное открытие/закрытие и выделение тепла. Если взять частоту ШИМ 200 кгц - получится 2.5 мкс на 50% ШИМ - транзистор будет половину периода только открываться, т.е. нагрев вырастет почти в два раза.
Для коммутации на высоких частотах и уже нужно использовать драйверы, которые смогут "резко" открывать и закрывать затвор большим током. Существуют также Low-Gate Charge модели мосфетов с затворами низкой ёмкости.
Таким образом, для работы напрямую от МК стоит выбирать Low-Gate Charge + Logic Level модели полевых транзисторов - они сразу подойдут лучше остальных
Хорошие варианты #
Корпус TO220
Маркировка | 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 |
Корпус Dpak
Маркировка | R, мОм | Ток при 3V | Ток при 5V |
---|---|---|---|
STD17NF03LT4 | 50 | 5 | 40 |
IRLR024NPBF | 65 | 4 | 20 |
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.
Программирование #
Связанные уроки:
Для управления транзистором достаточно подать с пина сигнал:
HIGH
- открыть транзистор, включить нагрузкуLOW
- закрыть транзистор, выключить нагрузку- ШИМ сигнал для плавного управления мощностью на нагрузке
#define MOS_PIN 3
void setup() {
pinMode(MOS_PIN, OUTPUT);
}
void loop() {
// включить-выключить
digitalWrite(MOS_PIN, HIGH);
delay(1000);
digitalWrite(MOS_PIN, LOW);
delay(1000);
// включить на 50% и выключить
analogWrite(MOS_PIN, 128);
delay(1000);
digitalWrite(MOS_PIN, LOW);
delay(1000);
}
Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])
- Поддержать автора за работу над уроками