В современном цифровом мире микроконтроллерам часто требуется выполнять какие-то действия в физическом мире людей с помощью различных механических, оптических, акустических и других внешних устройств. Транзисторы призваны согласовать микроконтроллер с исполнительными устройствами. В статье рассмотрим применение биполярных транзисторов в ключевых режимах. Биполярный транзистор является по сути токовым прибором, током управляется и током управляет. По типу проводимости биполярные транзисторы бывают pnp и npn типа. Наиболее часто используется схема включения с общим эмиттером. В этой схеме управление подается на базу через токоограничивающий резистор относительно эмиттера. Нагрузка подключается в цепь коллектора.  Светодиодом с рабочим током 50 мА нельзя управлять непосредственно от микроконтроллера, так как допустимый выходной ток с ножки обычно ограничен значением 10 мА – 20 мА. Например, нам нужно включать/выключать инфракрасный светодиод BL-L513IRBC которым мы планируем управлять кондиционером. Резистор R1 задает ток базы транзистора при включении и при выключении. Транзистор BC847C довольно маломощный и при токе 50 мА на коллекторе в режиме насыщения будет падать около 200 мВ. Падение на светодиоде составит 2.0 В. Резистор R2 нужно выбрать таким, чтобы ток через светодиод был равен 50 мА. При питании 12 В, и суммарном падении напряжения на транзисторе и светодиоде 2.2 В на резисторе будет напряжение 9.8 В. Чтобы получить ток 50 мА сопротивление резистора R2 должно быть 196 Ом. Если взять более мощный транзистор, например, BC817-25, то напряжение насыщения коллектора у него будет меньше, около 40 мВ при токе коллектора 50 мА, но у более мощных транзисторов, как правило, меньше коэффициент усиления. При питании коллекторной цепи от 12 В мы можем соединить несколько светодиодов последовательно и управлять ими одновременно (например, чтобы увеличить дальность работы нашего пульта управления) соответственным образом пересчитав токоограничивающий резистор R2. Как выбрать резистор в базе транзистора? Транзистор BC847C имеет коэффициент передачи по току hFE = 400 – 800. В линейном режиме это будет означать что ток базы (управляющий ток) во столько раз меньше тока коллектора (управляемый ток). Так как схема у нас работает в ключевом режиме, то ток базы необходимо установить больше. Чем больше ток базы, тем быстрей транзистор включится. Коэффициент во сколько раз ток базы превышает минимальный называется коэффициентом насыщения. Минимальный ток базы (с коэффициентом насыщения единица) который полностью откроет транзистор будет 50 мА / 400 = 0.125 мА. Так как характеристики транзистора меняются со временем, при изменении температуры, при изменении тока коллектора, от партии к партии, у разных производителей, правильным решением будет задавать коэффициент насыщения больше единицы, иначе может возникнуть ситуация при которой транзистор будет открываться не полностью и схема будет работать при этом не верно. Верхнее значение тока базы ограничено либо максимальным током базы по документации на транзистор, либо максимально допустимым током который может выдать выход микроконтроллера. Пусть максимальный ток базы у нас будет 10 мА. Рассчитаем базовый резистор для схемы на рисунке 1. Напряжение на базе при насыщении принято считать 0.7 В. При питании микроконтроллера 3.3 В на базовом резисторе будет напряжение 2.6 В. Минимальный базовый ток 0.125 мА будет обеспечен сопротивлением 20800 Ом.  Максимальный базовый ток 10 мА будет обеспечен сопротивлением 260 Ом. В данном случае у нас довольно широкий диапазон выбора сопротивления, можем взять 1 кОм. Нам нужно включать мотор с рабочим током 0.7 А. Для включения нам потребуется более мощный транзистор. Возьмем транзистор SS8050 с максимально допустимым током коллектора 1.5 А. У этого транзистора минимальный коэффициент передачи тока 120. При токе коллектора 0.7 А, нам необходимо обеспечить минимальный ток базы 5.8 мА. С учетом того что необходимо реализовать коэффициент насыщения больше единицы, у нас остается рабочий вариант для тока базы 10 мА. При    заданном токе коллектора 0.7 А напряжение насыщения базы этого транзистора составит около 1.2 В (по документации на транзистор). Напряжение на  базовом резисторе получится 2.1 В, Минимальное сопротивление базового резистора получается 2.1 В / 0.010 А = 210 Ом. Максимальное сопротивление базового резистора получается 2.1 В / 0.0058 А = 360 Ом. Если мы поставим базовый резистор больше 360 Ом, транзистор заведомо не будет открываться полностью и не обеспечит ток на выходе в 0.7 А. При токе коллектора 0.7 А напряжение насыщения коллектора составит около 0.2 В. Мощность рассеиваемая на коллекторе транзистора составит около 0.14 Вт, транзистор при этом будет заметно теплым. Дополнительно отмечу, что электродвигатель постоянного тока является индуктивной нагрузкой и параллельно ему обязательно нужно ставить защитный диод который защитит транзистор от ЭДС самоиндукции при выключении транзистора. Номинальный ток этого диода должен быть равен или больше рабочего тока индуктивной нагрузки. Рабочее напряжение диода должно быть больше напряжения питания нагрузки. Нужно указать на важный момент. Чем больше ток базы, тем быстрей включится транзистор, тем больше коэффициент насыщения. Чем больше коэффициент насыщения, там медленней транзистор будет выключаться. Задержка выключения может достигать нескольких сотен наносекунд. На первый взгляд эта величина кажется слишком маленькой чтобы обращать на нее внимание. Фактически, если вы станете управлять током через нагрузку с помощью ШИМ, или постараетесь увеличить скорость передачи данных через инфракрасный канал, вы увидите что задержка выключения транзистора будет очень сильно искажать сигнал. Например, возьмем ШИМ частотой 20 кГц с разрешением 8 бит. Период ШИМ-а будет 50 микросекунд, разрешение одного шага составит около 200 наносекунд. Задержка выключения транзистора на 400 наносекунд поглотит разрешение двух младших бит и оставит от разрешения 8 бит всего 6 бит динамического диапазона. Для увеличения скорости выключения транзистора есть способы которые мы рассмотрим позже.  Эта схема также с общим эмиттером. В ней отсутствует резистор в цепи базы, и ток базы задается сопротивлением резистора в цепи эмиттера. Через этот резистор течет ток базы и ток коллектора (ток управления и ток нагрузки). Получается отрицательная обратная связь: при увеличении тока нагрузки, будет увеличиваться ток через эмиттерный резистор и при этом будет увеличиваться падение напряжения на эмиттерном резисторе. Так как напряжение на базе у нас фиксированное, 3.3 В, то при увеличении напряжения на эмиттерном резисторе напряжение на эмиттерном переходе транзистора будет уменьшаться, при этом будет уменьшаться ток базы и транзистор будет закрываться. Таким образом, будет стабилизироваться эмиттерный ток транзистора. Так как базовый ток в коэффициент усиления раз меньше коллекторного, то его влияние на напряжение эмиттерного резистора незначительное и, при первом приближении, его можно не учитывать при расчете и считать что ток эмиттера приблизительно равен току коллектора .   Сопротивление эмиттерного резистора рассчитать довольно просто. При управляющем напряжении 3.3 В, и падении на эмиттерном переходе 0.7 В напряжение на эмиттерном резисторе получается 2.6 В. При целевом токе в нагрузке 50 мА, сопротивление эмиттерного резистора должно быть около 52 Ом. Эта схема позволяет стабилизировать ток нагрузки, то есть, при изменении напряжения питания нагрузки (или при изменении сопротивления нагрузки) ток через нагрузку останется постоянным. Мы можем поставить один светодиод, два или три при этом эмиттерный резистор менять не придется и ток через светодиоды будет один и тот же. При этом нужно отметить, что в этой схеме избыточное напряжение падает на транзисторе и нужно учитывать мощность рассеиваемую на транзисторе. Транзистор в этой схеме работает в линейном режиме и не входит в насыщение. Это позволяет транзистору быстро открываться и быстро закрываться. В этой схеме только один резистор вместо двух, что так же может иметь важное значение в практическом применении. Важно чтобы напряжение управления базы было стабильным, так как оно является опорным для стабилизации тока. Для питания коллекторной цепи этой схемы требуется напряжение большее чем напряжение управляющего сигнала. Если у нас стоит базовый резистор и мы управляем транзистором от вывода микроконтроллера с питанием 3.3 В, то получается что мы включаем транзистор током  с 3.3 В , а выключаем транзистор током через тот же резистор, но током с напряжения 0.7 В, то есть ток базы на выключение транзистора получится меньше. Это одна из причин почему выключается транзистор медленней. Для увеличения скорости выключения транзистора мы можем применить такую схему. В схеме на рисунке 5, при выключении, когда выходной сигнал с микроконтроллера становится равным 0 В, получается что оба резистора 300 Ом и 200 Ом соединяются параллельно и суммарное сопротивление становится меньше, что приводит к увеличению тока базы транзистора при выключении. Это увеличивает скорость выключения транзистора. Еще один способ увеличить скорость выключения транзистора, это сократить глубину насыщения транзистора при включении. Диод подключенный от базы на коллектор уменьшит глубину насыщения. Вначале включения на коллекторе высокое напряжение, диод закрыт и весь ток базового резистора течет через эмиттерный переход транзистора. Когда напряжение на коллекторе станет ниже напряжения базы,  этот диод начнет шунтировать эмиттерный переход и часть тока базового резистора потечет через диод при этом ток через эмиттерный переход уменьшится и это сократит глубину насыщения транзистора. Эта схема позволяет увеличить ток на выходе. Это полумостовая схема. В ней используется два транзистора различной проводимости, комплементарная пара транзисторов. Оба транзистора, и верхний и нижний, в этой схеме включены по схеме с общим коллектором. Включение с общим коллектором обладает такой особенностью, что выходное напряжение не может быть больше входного напряжения, при этом происходит усиление тока.  При построении полумоста на полевых транзисторах нужно особым образом проектировать схему управления, и если оба транзистора управлять от одного сигнала, то в момент переключения будет течь сквозной ток с питания на землю, так как один транзистор уже включился, а другой еще не успел выключиться. Сквозной ток плох тем, что он будет увеличивать потребление, сквозной ток будет создавать мощную помеху и может вывести транзисторы из строя. Для устранения этого для управления полумостом полевых транзисторов используют два сигнала, на один транзистор подается сигнал отключения, затем пауза на время отключения транзистора (мертвое время, deadtime), затем подается сигнал на включение второго транзистора. Такой способ заметно усложняет схему управления и требует два различных сигнала управления. Полумостовая схема на биполярных транзисторах включенных с общим эмиттером тоже требует мертвое время при переключении для исключения сквозного тока. Схема изображенная на рисунке 7 с биполярными транзисторами включенными по схеме с общим коллектором лишена такого недостатка, и полумост может управляться одним сигналом. То есть сквозной ток через оба транзистора при переключении в схеме на рисунке 7 отсутствует.  Дополнительным достоинством этой схемы, является отсутствие резисторов. Так же, транзисторы в этой схеме работают без насыщения, то есть максимально быстро включаются и отключаются, что позволяет применять эту схему как усилитель  ШИМ. Недостатком этой схемы является падение на транзисторах. На примере нижнего транзистора. Когда мы переводим сигнал управления на базе с 3.3 В на 0 В, нижний транзистор начинает включаться. При этом напряжение на эмиттере транзистора не может стать равным нулю, так как в этом случае через эмиттерный переход будет отсутствовать ток открывающий транзистор. Таким образом минимальное напряжение на выходе этого каскада составит около 0.7 В. Аналогичная ситуация и с верхним транзистором, максимальное напряжение на выходе каскада не может быть больше чем напряжение питания минус 0.7 В. Если взять два таких полумоста с питанием равным напряжению питания микроконтроллера, сделать сигнал ШИМ и его инверсию (либо отдельным инвертором, либо конфигурацией выходов в микроконтроллере) и подать каждый сигнал на свой полумост, то получится довольно мощный усилитель, например для генерации звука. При питании усилителя от 3.3 В Размах напряжения на выходе составит 3.3 В — 2 * 0.7 В  = 1.9 В. При использовании динамической головки сопротивлением 4 Ом ток через нее составит около 0.4 А и максимальная мощность на нагрузке получится чуть больше половины Ватта. Что довольно таки хорошо для такого простейшего усилителя ШИМ. Питание этой схемы усилителя нужно качественно фильтровать, так как любое изменение напряжения питания будет отражаться на изменении тока через нагрузку. При применении микроконтроллера с питанием 5 В так же можно увеличить напряжение питания усилителя до 5 В, при этом выходная мощность на нагрузке сопротивлением 4 Ом получится около 3 Вт. При этом нужно взять транзисторы с большим допустимым током коллектора, например комплементарную пару SS8550 (pnp) и SS8050 (npn), они допускают ток коллектора до 1.5 А, транзисторы придется дополнительно охлаждать. Эту же схему можно использовать  для управления коллекторными моторами с применением ШИМ. Схема позволяет менять направление вращения электромотора. При использовании более высокого напряжения питания этого усилителя тока требуется также увеличить напряжение управляющего сигнала. Для приведения уровня управляющего сигнала с 3.3 В до 15 В применен транзистор. В этой схеме для управления каждым полумостом используется логическая микросхема 4069 (CD4069UB). В этой микросхеме шесть логических инверторов, питание микросхемы может осуществляться от 3 В до 18 В. Для управления мостом необходимо подать питание на эту микросхему от того же напряжения питания что и мост. Эта же микросхема используется для формирования инверсного сигнала для второго полумоста. Для того чтобы на нагрузку можно было подать максимальное напряжение 12 В с учетом падения на транзисторах, увеличено напряжение питания моста до 15 В. В этой схеме реализован режим управления током нагрузки fast decay. Для реализации режима  slow decay потребуется отдельное управление для каждого полумоста. Для упрощения понимания в статье рассматриваются только основные параметры, и характеристики реальных каскадов будут несколько отличаться.  Все схемы приведенные в статье промоделированы в LTspice