Пин Uno — скромный кормилец: до 20 миллиампер без риска и 40 в пределе, а у самого безобидного моторчика постоянного тока рабочий ток начинается от пары сотен. Я понял это на вентиляторе от старого блока питания: подключил к пину напрямую, светодиод на плате честно мигал по скетчу, а вентилятор даже не дёрнулся. Транзистор решает ровно эту задачу — маленьким током с пина открывать большой ток через нагрузку, как выключатель, который щёлкает не пальцем, а электроникой.
Схема ключа на NPN укладывается в три строки: эмиттер — на общий минус, нагрузка — в коллектор к плюсу питания, база — к пину через резистор. Резистор здесь не украшение: без него переход база-эмиттер вытянет из пина всё, что тот способен отдать, и умрёт первым. При 1 кОм и HIGH на пине базовый ток выходит (5 − 0,7) / 1000 ≈ 4,3 миллиампера. Этого хватает, чтобы через транзистор прошло в разы больше: у BC337 и 2N2222 коэффициент передачи hFE лежит в диапазоне 100-300, то есть четыре с небольшим миллиампера в базе уверенно ведут нагрузку в 300-400 миллиампер.
Ключ на биполярном транзисторе переключается быстро: BC337 уверенно работает на единицах килогерц, поэтому через него можно не просто включать мотор, а вести его ШИМом — плавно менять обороты, как это делает analogWrite на пине с тильдой. Для макетки хватает дефолтных 490 герц или 980 на D9; если мотор тонко пищит на низких оборотах — это слышимая частота ШИМ, на работу она не влияет, но иногда раздражает. Насыщение и запирание занимают доли микросекунды, а вот выйти из насыщения транзистору нужны уже микросекунды с десятком, поэтому на сотни килогерц такой ключ не тянет — там царят полевики.
Первую встречу с ключом я разбирал в уроке про транзисторный ключ 2N2222 — там сама идея и сборка. Здесь пойдёт расчёт по-взрослому: как подобрать резистор базы под конкретную нагрузку, зачем диод рядом с реле и мотором и почему молчащий ключ чаще всего упирается не в транзистор, а в общий провод — ту самую тему, которую я подробно раскладывал в уроке про GND и общие провода.
Расчёт базы: Ib = Ic/hFE и запас на насыщение
Считаем от нагрузки, а не от транзистора. Пусть в коллекторе моторчик на 300 миллиампер. Формула Ib = Ic/hFE даёт минимум: 300 / 100 = 3 миллиампера, если ваша конкретная партия BC337 обещает hFE хотя бы 100. Даташит честен, но хитрость в том, что коэффициент указывают для линейного режима, а в ключевом мы загоняем транзистор в насыщение, где hFE падает. Поэтому я делю с запасом в два-три раза: 3 миллиампера минимума — значит, хочу видеть в базе 6-9. Резистор 1 кОм даёт 4,3 — проходит для 300 миллиампер; для 500 беру 470-680 Ом и получаю 7-9 миллиампер. Пин Uno при этом жив: его предохранительный потолок — 40 миллиампер на пин, рабочий — 20.
Паспортные 800 миллиампер BC337 и 2N2222 — это предел, а не цель. Корпус TO-92 рассеивает ватт с четвертью в лучшем случае, и при токе ближе к максимуму транзистор в насыщении всё равно отдаёт полватта тепла. Мой рабочий потолок для ключа на макетке — примерно 400 миллиампер на одну нагрузку; выше ставлю полевой MOSFET — урок про IRF520 показывает, что там вообще нет танцев с базовым током. И второй запас — по напряжению: BC337 держит 45 вольт коллектор-эмиттер, для макеточных 5-12 вольт это с горкой.
Тепло ключа считается на пальцах: в насыщении между коллектором и эмиттером остаётся 0,1-0,3 вольта, и при 300 миллиамперах это 30-90 милливатт — корпус даже не тёплый. Тот же транзистор в линейном режиме, на полпути между открыто и закрыто, легко отдаёт в воздух ватт и греется до ожога. Отсюда правило ключа: либо открыто до упора, либо закрыто, а линейные режимы — территория стабилизаторов и усилителей, не коммутируемых нагрузок. Именно поэтому ШИМ, где транзистор только щёлкает туда-сюда, для него родной режим, а вот «приоткрывать» мотор на треть оборотов базовым током — прямой путь к радиатору.
Теперь про диод, без которого ключ на индуктивной нагрузке живёт до первого выключения. Катушка реле и обмотка мотора — это индуктивность: пока ключ открыт, она копит энергию, а в момент размыкания выбрасывает всплеск обратной полярности в десятки вольт. Сорок пять вольт по паспорту BC337 такой выброс пробивает за один щелчок. Лечение копеечное: диод 1N4007 параллельно нагрузке, катодом к плюсу, — при работе он закрыт и молчит, при размыкании замыкает выброс на саму катушку. Номиналы, скорость восстановления и выбор между обычным диодом и Шоттки — тема следующего урока этого кластера, а здесь запомните правило: есть катушка — есть диод.
Готовый реле-модельный модуль этот узел уже несёт на плате — транзистор, диод и резистор входа запаяны фабрично, и пину остаётся роль диспетчера; я раскладывал его по винтикам в уроке про подключение реле-модуля к Uno. Голый транзистор на макетке ценен ровно наоборот: вы сами ставите каждую деталь и видите, кто за что отвечает — это лучший способ понять, что происходит внутри чёрного прямоугольника модуля.
Самая частая ловушка этой схемы звучит как «транзистор молчит». Симптом узнаваемый: светодиод, воткнутый прямо в пин, мигает по скетчу, а нагрузка в коллекторе стоит мёртвая. В девяти случаях из десяти дело в общем проводе: эмиттер обязан сидеть на том же минусе, что и плата. Если нагрузку кормит отдельный блок, а минус этого блока не слит с GND Uno, переход база-эмиттер не видит разности потенциалов — току в базу просто некуда течь. Я потерял на этом вечер с двумя блоками питания и кучей взаимных обвинений, а виноват оказался один перемычка-провод, которого не было.
Минусы соединяют в одной точке: минус нагрузки должен приходить на шину GND макетки отдельным коротким проводом, а не цепочкой через чужой прибор. Иначе ток нагрузки, текущий по общему проводу, поднимает потенциал эмиттера на милливольты, и ключ дёргается от чужих помех или открывается наполовину. Дисциплина общих проводов с примерами разобрана в уроке про GND по ссылке выше — перечитайте его перед подключением внешнего блока.
Проверка занимает минуту: мультиметр между эмиттером и GND платы должен звониться в ноль ом. Дальше посчитайте шину: ключ тянет свои миллиамперы из линии питания, а не из пина, и если рядом уже висят серво, матрица и дисплей, бюджет кончится раньше, чем вы заметите. Такой расклад я веду в уроке про бюджет тока проекта, а когда шина начинает проседать от щелчков реле — переношу нагрузку на внешнее питание макетки, оставляя минус общим с платой.
| Нагрузка | Транзистор | Резистор базы | Примечание |
|---|---|---|---|
| светодиод, 20 мА | BC337 / 2N2222 | 4,7-10 кОм, Ib 0,5-1 мА | для одиночного LED транзистор избыточен — резистора хватает |
| моторчик, до 300 мА | BC337-25 | 1 кОм, Ib около 4,3 мА | диод параллельно мотору, катод к плюсу |
| вентилятор, до 500 мА | BC337 + диод | 470-680 Ом, Ib 7-9 мА | пину комфортно: его потолок 20 мА |
| катушка реле, 71 мА | BC337, диод обязателен | 1-2,2 кОм | выброс катушки без диода пробивает ключ за один щелчок |
Стенд: кнопка, ключ и расчёт в мониторе
// Стенд: кнопка D2 тумблерит ключ (база BC337 через 1 кОм на D7),// D12 зеркалит нагрузку. При старте печатаем расчёт базового тока// и потолок, который этот резистор способен вести.const int PIN_BTN = 2;const int PIN_KEY = 7;const int PIN_LED = 12;const int IC_NAGR = 300; // мА — рабочий ток вашей нагрузкиconst int HFE_MIN = 100; // худший hFE для партии BC337 bool klyuch = false;bool prevBtn = HIGH; void setup() { Serial.begin(9600); pinMode(PIN_KEY, OUTPUT); pinMode(PIN_LED, OUTPUT); pinMode(PIN_BTN, INPUT_PULLUP); // Ib = (5 - 0.7) / 1000 Ом = 4.3 мА (целыми: 4300/1000) int ib = (5000 - 700) / 1000; int zapas = ib * HFE_MIN; Serial.print("Ib = "); Serial.print(ib); Serial.println(" mA"); Serial.print("klyuch vedet do "); Serial.print(zapas); Serial.println(" mA"); if (zapas < IC_NAGR) { Serial.println("rezistor bazy velik - beri 470-680 Om"); }} void loop() { bool pressed = digitalRead(PIN_BTN) == LOW; if (pressed && prevBtn == HIGH) { klyuch = !klyuch; digitalWrite(PIN_KEY, klyuch ? HIGH : LOW); digitalWrite(PIN_LED, klyuch ? HIGH : LOW); Serial.println(klyuch ? "klyuch otkryt - nagruzka pod tokom" : "klyuch zakryt - nagruzka spit"); } prevBtn = pressed; delay(20);}Скетч делает две вещи, и первая важнее кнопки. При старте он печатает в монитор расчёт: ток базы, который даёт резистор, и потолок коллекторного тока с учётом худшего hFE партии. Если потолок оказался меньше тока вашей нагрузки — строка подсказывает уменьшить резистор. Поменяйте константы IC_NAGR и HFE_MIN под свои детали, и эта считалка отработает любую будущую нагрузку: моторчик, помпу, катушку. Кнопка здесь — просто дистанция для рук, чтобы не перетыкать провода.
После сборки пройдитесь щупами, и ключ перестанет быть чёрным ящиком. Между базой и эмиттером открытого ключа — 0,6-0,7 вольта, как у любого кремниевого перехода. Между коллектором и эмиттером в насыщении — 0,1-0,3 вольта: транзистор плотно закрыл цепь на минус. Если во включённом состоянии видите 1-2 вольта и больше, базового тока не хватает, транзистор повис в линейной зоне, греется и ведёт нагрузку вполсилы — уменьшайте резистор базы. Ноль вольт между базой и эмиттером при HIGH на пине означает обрыв в базовой цепи, а бесконечное сопротивление на том же переходе — пробитый транзистор, и это следующий пункт списка покупок. Приёмы работы с щупами я показывал в уроке про мультиметр, напряжение и прозвонку.
- 1. Пин выдал HIGH на базу через резистор 1 кОм. Какой ток течёт в базе?
- 2. Где сидит нагрузка в ключе на NPN-транзисторе?
- 3. Нагрузка тянет 300 мА, hFE вашей партии — минимум 100. Минимальный ток базы?
- 4. Светодиод от пина мигает, а мотор в коллекторе молчит. Первое подозрение?
- 5. Зачем диод параллельно катушке реле?
- Ключ на NPN: эмиттер на общий минус, нагрузка в коллекторе, база к пину через резистор — без резистора переход вытянет из пина предельный ток.
- Ib = Ic/hFE; 1 кОм при 5 В даёт около 4,3 мА в базе и уверенно ведёт нагрузку до 300-400 мА.
- Паспортные 800 мА BC337 — предел корпуса TO-92; рабочий потолок на макетке около 400 мА, дальше MOSFET.
- Есть катушка или мотор — есть диод параллельно нагрузке катодом к плюсу, иначе выброс пробивает ключ.
- Молчащий ключ чаще всего упирается в общий провод: эмиттер и GND платы обязаны звониться в ноль ом.
Частые вопросы по теме урока
- Пин выдал HIGH на базу через резистор 1 кОм. Какой ток течёт в базе?
- (5 − 0,7) / 1000 = 4,3 мА. Падение 0,7 В — это прямое напряжение перехода база-эмиттер, остальное садится на резисторе. около 4,3 мА
- Где сидит нагрузка в ключе на NPN-транзисторе?
- Классика NPN-ключа: эмиттер на общий минус, нагрузка в коллекторе к плюсу. Тогда открытый транзистор прижимает нижний вывод нагрузки к земле. между плюсом питания и коллектором
- Нагрузка тянет 300 мА, hFE вашей партии — минимум 100. Минимальный ток базы?
- Ib = Ic/hFE = 300/100 = 3 мА. В ключе я добавляю запас в два-три раза, потому что в насыщении hFE проседает, — и резистор 1 кОм с его 4,3 мА закрывает вопрос. 3 мА
- Светодиод от пина мигает, а мотор в коллекторе молчит. Первое подозрение?
- Без слитого минуса переход база-эмиттер не видит разности потенциалов, и току в базу некуда течь. Прозвонка эмиттер-GND в ноль ом закрывает вопрос за минуту. нет общего GND между нагрузкой и платой
- Зачем диод параллельно катушке реле?
- Катушка — индуктивность: при размыкании она выбрасывает десятки вольт обратной полярности. Диод катодом к плюсу закорачивает этот выброс и спасает транзистор. замкнуть выброс напряжения в момент размыкания