Поливалка на балконе прожила четыре дня и умерла в пятницу вечером — точнее, умер не поливалка, а пин 7 Arduino, на котором она была построена. Схема была наивная: помпа прямо к пину и GND, скетч включает HIGH по расписанию. Первые дни всё работало, потом помпа стала запускаться через раз, а в конце плата уходила в перезагрузку в момент старта мотора. Код я проверил трижды — он был безупречен. Виновата оказалась арифметика, до которой я не дошёл: пин ATmega328P выдаёт около 20 мА в штатном режиме и 40 мА как абсолютный предел по даташиту, а помпа при старте просит 300–500 мА. Пин не может дать то, чего у него нет.
Транзистор решает это неравенство за копейки. По сути это водопроводный кран: слабое движение ручки открывает мощный поток. К ручке подключается пин — ему хватает его скромных 20 мА, — а к трубе — нагрузка со своим питанием. Классическая деталь для первых ключей — 2N2222: усиление от 100 до 300, коллектор держит до 600 мА непрерывно. Корпус TO-92 — полукруглая банка с тремя ножками; на плоскую сторону снизу, слева направо, идут эмиттер, база, коллектор, но у клонов порядок бывает чужой, и даташит конкретной партии надёжнее моей памяти. Аналоги меняются свободно: BC337, PN2222, 2SC945 — для наших токов они взаимозаменяемы, разница только в цоколёвке. Этого хватает реле, сирене, цепочке светодиодов, небольшому мотору — всему, что сильнее пина вчетверо и вдвое больше.
В этом уроке я разберу ключ по винтикам: куда какая нога, откуда берётся резистор в базе и почему без него умирают пины, зачем мотору параллельный диод и где проходит граница применимости биполярного транзистора — за ней начинается территория MOSFET, которой посвящён следующий урок. Всё соберём на виртуальной макетке, без единого пострадавшего порта.
Три ноги с разными ролями
У NPN-транзистора три вывода, и у каждого одна роль. Эмиттер — выход наружу: в ключе он всегда идёт в GND платы. Коллектор — вход силового тока: между плюсом питания и коллектором садится нагрузка. База — управляющая: пин Arduino через резистор подаёт в неё маленький ток, и коллектор-эмиттер открываются, как задвижка. Пока на базе меньше 0,7 вольта, транзистор закрыт; поднял выше — открылся. Этой границей удобно пользоваться в голове: цифровой сигнал пина её уверенно преодолевает, а наводки — нет.
Усиление — арифметика: ток коллектора примерно в hFE раз больше тока базы. У 2N2222 hFE от 100 до 300, значит миллиампер в базе открывает дорогу ста миллиамперам. Но в режиме ключа мы работаем не в усилителе, а в насыщении: даём в базу в три-пять раз больше минимального тока, чтобы падение коллектор-эмиттер просело до 0,2–0,3 вольта и транзистор почти не грелся. Недодали базы — транзистор работает резистором, тепло уходит в корпус, а не в работу.
Питание нагрузки не обязано совпадать с питанием платы: катушка реле может сидеть на 12 вольтах, пока базой управляют пять. Нерушимое условие одно — минусы должны быть общими: если силовая часть гуляет по своей земле, а плата по своей, току некуда вернуться, и ключ живёт своей жизнью. Мы это проходили в уроке про общий провод — там же и список симптомов, по которым эта ошибка ловится.
Резистор в базе считается из трёх чисел. Первое — ток нагрузки: пусть мотор ест 200 мА. Второе — усиление: при hFE 100 минимальный ток базы — 2 мА. Третье — запас на насыщение, я беру четырёхкратный: 8 мА. Дальше закон Ома, который мы считали в уроке про ток и напряжение: на переходе база-эмиттер садится 0,7 вольта, на резисторе остаётся 5 − 0,7 = 4,3, и R = 4,3 В / 8 мА — примерно 540 Ом. Ближайший стандартный номинал — 560 Ом, брать его проще всего по таблице номиналов.
Мои привычки, проверенные на десятке ключей: до 100 мА нагрузки ставлю 1 кОм — ток базы 4,3 мА, пин его даже не замечает; от 100 до 400 мА — 470 Ом. Ниже 220 Ом не опускаюсь никогда: (5 − 0,7) / 220 — почти 20 мА, это весь штатный бюджет пина, и на клонах с кривыми портами такие режимы заканчиваются предсказуемо. Если расчёт требует резистор меньше 220 Ом — задача не для биполярника, и это не мнение, а граница.
Про усиление честная оговорка: в даташите hFE — это вилка, а не число. Одна партия усилит втрое сильнее другой, и ключ, собранный по нижней границе вилки, будет открываться вполсилы. Запас в базовом токе как раз и покрывает разброс: недогадливый экземпляр всё равно открывается насквозь. Проверить свой транзистор мультиметром с режимом hFE — дело пяти минут; я ленивый и просто всегда беру запас, заодно страхуя и нагрев.
Что вешать на ключ: таблица нагрузок
| Нагрузка | Ток | Резистор в базе | Диод маховика |
|---|---|---|---|
| Один яркий светодиод | 20 мА | 1 кОм | не нужен |
| Гирлянда из пяти светодиодов | 100 мА | 1 кОм | не нужен |
| Катушка реле (модуль) | 70 мА | 1 кОм | стоит на модуле |
| Моторчик с крыльчаткой | 200 мА | 470 Ом | 1N4007 обязателен |
| Пьезо-сирена | 300–400 мА | 470 Ом | обязателен |
| Светодиодная лента 12 В | 1200 мА и выше | не для 2N2222 | нужен MOSFET |
Строка про диод — не перестраховка. Обмотка мотора или реле — это индуктивность: она держит ток так же, как маховик держит вращение. Открываешь ключ — ток разгоняется, закрываешь — индуктивность останавливаться не желает и поднимает напряжение на коллекторе до 30–50 вольт за микросекунды. Даташит 2N2222 обещает максимум 40 вольт коллектор-эмиттер: выброс пробивает переход, иногда с первого раза, иногда с десятого — с одним и тем же финалом. 1N4007 выбран не случайно: он держит до 1000 вольт обратного и ампер прямого тока — для наших моторов тройной запас; сигнальный 1N4148 по току для моторов уже слаб.
Лечится диодом 1N4007 параллельно нагрузке, катодом к плюсу: выброс ходит по кругу через саму обмотку и рассеивается в ней. Модулю реле, который мы включали в уроке про реле и 220 вольт, диод уже вмонтирован в плату — потому модули и удобны. Голому мотору никто ничего не вмонтирует: диод ставишь ты. Светодиодам маховик не нужен — они не индуктивность, первый маячок и все его цепочки спокойно жили без него.
Ключ в скетче: кнопка включает нагрузку
// Пин 7 ведёт базу 2N2222 через 470 Ом, нагрузка — между +12 В и коллекторомconst byte BTN = 2;const byte LOAD = 7; void setup() { pinMode(BTN, INPUT_PULLUP); pinMode(LOAD, OUTPUT); Serial.begin(9600);} void loop() { if (digitalRead(BTN) == LOW) { digitalWrite(LOAD, HIGH); Serial.println("нагрузка=вкл"); delay(2000); // держим 2 секунды с момента нажатия digitalWrite(LOAD, LOW); Serial.println("нагрузка=выкл"); } delay(20);}Симулятор: слабый сигнал, сильная нагрузка
Где проходит граница
Граница биполярного ключа — около пол-ампера. 2N2222 держит 600 мА по паспорту, но к 400–500 мА корпус уже приятно тёплый, а усиление проседает: у дешёвых партий hFE на больших токах падает вдвое, и расчёт базы по табличке становится враньём. Дарлингтоны вроде TIP120 решают вопрос усиления — там усиление порядка 1000, — но платят за это вольтом на переходе: при 500 мА это полватта тепла без всякой пользы.
Когда нагрузке нужен ампер и больше, а тем более когда её питание 12 вольт и хочется диммировать, я иду в следующий урок: MOSFET открывается напряжением, затвор не ест ток пина вообще, и лента на 1,2 ампера для него — разминка. Сервоприводы стоят особняком: им важен не ток как таковой, а импульсы управления, и разговор про них был в уроке про SG90. Поливалку же я пересобрал с транзистором, и она живёт до сих пор; пин 7 с тех пор ведёт только базу — скромную работу, которую он тянет десятилетиями. Тепло ключа, кстати, считается на пальцах: 0,3 вольта насыщения умножить на 0,3 ампера мотора — 0,09 ватта, корпус даже не тёплый. Именно поэтому греющийся ключ — диагноз недосыпа базы или отсутствующего маховика, а не норма работы.
- 1. Мотору нужно 300 мА, пин выдаёт 20 мА. Что ставим между ними?
- 2. Куда подключается эмиттер NPN в низкостороннем ключе?
- 3. Нагрузка 200 мА, hFE транзистора 100. Какой ток базы даст насыщение с запасом?
- 4. Зачем диод 1N4007 параллельно мотору?
- 5. База подключена к пину напрямую, без резистора. Что произойдёт?
- Пин даёт 20 мА штатно и 40 мА потолок; нагрузке больше — между ними транзисторный ключ, а не второй провод
- NPN-ключ: эмиттер в GND, нагрузка между плюсом и коллектором, база через резистор к пину
- Резистор базы: (5 − 0,7) / ток базы, где ток базы = ток нагрузки / hFE, умноженный на запас 3–5
- Без резистора порт умирает молча: переход база-эмиттер — диод с почти нулевым сопротивлением после 0,7 В
- Мотору и реле — диод 1N4007 параллельно нагрузке катодом к плюсу; светодиодам не нужно; граница 2N2222 — около 500 мА, дальше MOSFET
Частые вопросы по теме урока
- Мотору нужно 300 мА, пин выдаёт 20 мА. Что ставим между ними?
- Пин не выдаёт то, чего у него нет. Ключ отделяет слаботочный сигнал от силового тока: пин ведёт базу, нагрузку кормит свой провод питания. Транзисторный ключ с резистором в базе
- Куда подключается эмиттер NPN в низкостороннем ключе?
- Низкосторонний ключ разрывает минусовую ветвь: эмиттер — в GND, нагрузка сидит между плюсом и коллектором. Только так сигнал пина сравнивается с общим нулём. К общему минусу (GND)
- Нагрузка 200 мА, hFE транзистора 100. Какой ток базы даст насыщение с запасом?
- Минимум — 2 мА (200/100), в насыщение даём в 3–5 раз больше: 8–10 мА, резистор около 470–560 Ом. Ровно по формуле — это граница режима, а не ключ. 5–10 мА — с запасом к минимуму
- Зачем диод 1N4007 параллельно мотору?
- Обмотка держит ток после размыкания и поднимает напряжение до десятков вольт. Диод замыкает выброс по кругу через саму обмотку, не давая пробить транзистор. Чтобы гасить выброс самоиндукции при размыкании
- База подключена к пину напрямую, без резистора. Что произойдёт?
- Переход база-эмиттер — диод с почти нулевым сопротивлением после 0,7 вольта. Ток ограничивает только сам порт; так погиб пин 9 из начала урока. Ток пина уйдёт в переход база-эмиттер без ограничения — порт деградирует