Как подключить транзистор к Arduino?
Обновлено Редакция GAW
Биполярный транзистор подключают к Arduino как ключ низкой стороны: эмиттер — на GND платы, нагрузка — между плюсом её источника и коллектором, база — через резистор к цифровому выводу. Вывод UNO работает от 5 В (IOREF на плате соединён с 5 В) и нормирован на 20 мА при абсолютном пределе 40 мА, поэтому напрямую он тянет светодиод, но не реле и не двигатель. Минус питания нагрузки обязательно соединяют с GND Arduino — без общего провода ток базы не замкнётся.
Резистор базы и выбор транзистора
Ток базы берут с запасом относительно IC / hFE(min) при рабочем токе, а резистор — из 5 В минус VBE(sat). Формула и разбор запаса — в ответе о расчёте базового резистора, здесь готовые варианты (наш расчёт по даташитам Diodes):
| Нагрузка | Транзистор | hFE(min), VBE(sat) | Ток базы (запас 3) | RB | Ток вывода |
|---|---|---|---|---|---|
| Реле 50 мА | 2N3904 (MMBT3904) | 60; 0,95 В | 2,5 мА | 1,5 кОм | 2,7 мА |
| Лента, двигатель 150 мА | 2N2222A (MMBT2222A) | 100; 1,2 В | 4,5 мА | 820 Ом | 4,6 мА |
| Двигатель 500 мА | 2N2222A на пределе | 40; 2,0 В | 25 мА (запас 2) | 120 Ом | 25 мА — много для вывода |
Третья строка показывает границу биполярного ключа от микроконтроллера: при 500 мА на транзисторе падает до 1 В, а базе нужно 25 мА — больше нормированных 20 мА на вывод. От ампера и выше ставят MOSFET с логическим уровнем, его подключение — в ответе о MOSFET и Arduino. Любой расчёт между этими строками делает калькулятор транзисторного ключа.
// Pin 7 drives the base through RB; the load sits between +12 V and the collector
const int BASE = 7;
void setup() { pinMode(BASE, OUTPUT); }
void loop() {
digitalWrite(BASE, HIGH); // transistor saturates, load is on
delay(1000);
digitalWrite(BASE, LOW); // base at 0 V, load is off
delay(1000);
}
Диод, PNP и подтяжка
- Индуктивная нагрузка — реле, двигатель, соленоид — требует защитного диода параллельно обмотке катодом к плюсу: при закрытии ключа ЭДС самоиндукции иначе пробьёт переход коллектора (VCEO у 2N3904 и 2N2222A — 40 В).
- Ключ в плюсовом проводе на PNP от Arduino напрямую не работает, если питание нагрузки выше 5 В: вывод не поднимет базу до эмиттера, и транзистор не закроется. Решение с дополнительным NPN разобрано в ответе о PNP на высокой стороне.
- Резистор база–эмиттер 10–100 кОм держит ключ закрытым, пока микроконтроллер стартует и его выводы в высокоимпедансном состоянии.
- Нагрев. В насыщении на транзисторе падает не больше VCE(sat): 0,3 В при 50 мА у 2N3904 — это 15 мВт, корпус TO-92 или SOT-23 остаётся холодным. Горячий транзистор означает, что ток базы мал.
Похожие вопросы
Можно ли подключить реле к Arduino без транзистора?
Нет: вывод ATmega328P нормирован на 20 мА, предел 40 мА, а катушке реле на 5 В нужны десятки миллиампер и защита от выброса самоиндукции. Транзистор снимает с вывода ток, диод параллельно катушке — выброс.
Почему транзистор в плюсовом проводе не закрывается от Arduino?
Если это PNP на 12 В, его эмиттер сидит на 12 В, а вывод Arduino выдаёт максимум 5 В — переход база–эмиттер остаётся открытым. Ключ высокой стороны на PNP от микроконтроллера строят через дополнительный NPN-каскад, который тянет базу PNP к земле.
Когда вместо биполярного транзистора нужен MOSFET?
Когда ток нагрузки — ампер и больше: у MMBT2222A при 500 мА hFE гарантировано лишь 40, базе нужно 25 мА, а на транзисторе падает до 1 В. MOSFET с логическим уровнем вроде IRLZ44 не требует тока управления и при 5 А падает лишь 0,14 В.
Источники
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B, 2020) — разд. 30.1 Absolute Maximum Ratings: 40 мА на вывод, 200 мА на VCC и GND; табл. 30-1 и примечания 3–4: порт нормирован на 20 мА при VCC 5 В, VOH не ниже 4,2 В при IOH 20 мА, VOL не выше 0,9 В при IOL 20 мА, сумма токов группы выводов не более 150 мА (источник) и 100 мА (сток)
- Arduino. UNO R3 Product Reference Manual (SKU A000066, modified 03/11/2026) — разд. 1.1 и 3.2: процессор ATmega328P, 14 цифровых входов-выходов; разд. 5.1: вывод IOREF соединён с 5 В — логика платы 5-вольтовая
- Diodes Incorporated. MMBT3904 (DS30036 Rev. 27-2, March 2025) и MMBT2222A (DS30041 Rev. 18-2, June 2025): NPN Small-Signal Transistors in SOT23 — MMBT3904: IC до 200 мА, VCEO 40 В, hFE не менее 60 при 50 мА и 30 при 100 мА, VBE(sat) до 0,95 В при 50 мА, VCE(sat) до 0,3 В при 50 мА; MMBT2222A (diodes.com/assets/Datasheets/ds30041.pdf): IC до 600 мА, hFE не менее 100 при 150 мА и 40 при 500 мА, VBE(sat) до 1,2 В при 150 мА и 2,0 В при 500 мА, VCE(sat) до 0,3 В при 150 мА и 1,0 В при 500 мА
- Vishay Siliconix. IRLZ44 Power MOSFET (Document Number 91328, S21-1045-Rev. D, 25-Oct-2021) — RDS(on) не более 0,028 Ом при VGS 5 В и ID 31 А — при 5 А падение не более 0,14 В (наш расчёт); VGS(th) 1,0–2,0 В
Нашли ошибку? ·
Смотрите также
- Как рассчитать базовый резистор транзисторного ключа?RB = (Uвых − VBE(sat)) · hFE(min) / (k · IC); пример на MMBT3904
- Как подключить MOSFET к Arduino?N-канальный ключ низкой стороны: логический уровень, резистор в затворе, подтяжка, общий GND
- Обратный диодFlyback-диод: защита ключа от выброса индуктивности
- Почему транзистор не открывается, если не соединить минусы?Ток базы идёт через эмиттер обратно к источнику сигнала — без общего GND ему некуда
- Почему PNP-транзистор не закрывается от 3,3 В?1,7 В между эмиттером и выводом МК держат PNP открытым; решение — NPN-каскад
- Расчёт ключа на биполярном транзистореРезистор базы, ток базы, Iк/Iб и нагрев ключа