ELECTRONICS

Транзистор BC547 и Arduino: схема подключения, расчёт резистора базы и скетч

Транзисторы и ключиСкетч проверен компиляцией

BC547 — маленький транзистор в чёрном корпусе, который позволяет плате управлять тем, что она сама вытянуть не может. Вывод Arduino отдаёт двадцать миллиампер, транзистор пропускает до ста и берёт ток от отдельного источника.

Работает он просто: подали напряжение на базу — открылся канал между коллектором и эмиттером, и через нагрузку пошёл ток. Убрали — закрылся. По сути это выключатель, у которого вместо пальца ваш цифровой вывод.

Схема подключения

BC547C-027
Наведите курсор на провод — расскажу, зачем он нужен.

Распиновка

ПроводКуда и зачем
C — коллекторЛевый вывод при виде на плоскую грань. Сюда подключается нагрузка.
B — базаСредний вывод. Управляющий сигнал через резистор.
E — эмиттерПравый вывод. Идёт на землю.

Характеристики

Тип
биполярный NPN
Максимальный ток коллектора
100 мА
Максимальное напряжение
45 В
Коэффициент усиления
110–800 в зависимости от партии
Резистор базы для 5 В
1 кОм
Корпус
TO-92

Как посчитать резистор базы

Биполярный транзистор управляется током. Чтобы он открылся полностью, ток базы должен быть примерно в двадцать раз меньше тока нагрузки — берут именно такой запас, а не паспортное усиление, потому что оно гуляет от экземпляра к экземпляру.

Для нагрузки в двадцать миллиампер нужен ток базы около одного миллиампера. Из пяти вольт вычитаем ноль целых семь десятых — столько падает на переходе база-эмиттер — и делим на одну тысячную ампера: получается около четырёх килоом. На практике ставят один килоом, с запасом: транзистор откроется гарантированно, а вывод платы отдаст пять миллиампер вместо двадцати допустимых.

Без резистора переход база-эмиттер работает как обычный диод с почти нулевым сопротивлением — вывод платы окажется фактически замкнут на землю.

BC547 или 2N2222: главная ловушка

Эти два транзистора выглядят одинаково — один и тот же чёрный корпус TO-92 — и часто заменяют друг друга в схемах. Но выводы у них расположены зеркально.

У BC547 при виде на плоскую грань слева направо идут коллектор, база, эмиттер. У 2N2222 в том же положении — эмиттер, база, коллектор. Средний вывод совпадает, крайние меняются местами.

Результат подмены: транзистор включается наоборот, нагрузка не работает, а сам он может выйти из строя. Поэтому распиновку сверяют по маркировке на корпусе, а не по тому, что деталь похожа на прошлую.

Библиотека

не нужнаТранзистор управляется обычным digitalWrite или analogWrite — с точки зрения программы это такой же выход, как светодиод.

Готовый скетч

const int PIN_BASE = 9;   // вывод с ШИМ — можно плавно

void setup() {
  pinMode(PIN_BASE, OUTPUT);
}

void loop() {
  // просто включить и выключить
  digitalWrite(PIN_BASE, HIGH);
  delay(1000);
  digitalWrite(PIN_BASE, LOW);
  delay(1000);

  // плавное нарастание: транзистор на выводе с ШИМ
  // работает как регулятор мощности
  for (int power = 0; power <= 255; power++) {
    analogWrite(PIN_BASE, power);
    delay(8);
  }
  for (int power = 255; power >= 0; power--) {
    analogWrite(PIN_BASE, power);
    delay(8);
  }
}

Скетч собирается arduino-cli под Arduino UNO

Через транзистор работает и analogWrite: он открывается и закрывается тысячи раз в секунду, и нагрузка получает среднюю мощность. Так регулируют яркость ленты и скорость мотора.

Частые ошибки

Транзистор греется и не открывается полностью

Слишком большой резистор в базе либо ток нагрузки выше ста миллиампер. BC547 — маломощный: для мотора или ленты нужен TIP120 или полевой.

Нагрузка включена в эмиттер вместо коллектора

Так транзистор не откроется до конца: на нагрузке окажется на пару вольт меньше. Нагрузку всегда ставят между питанием и коллектором.

Забыт резистор в базе

Переход база-эмиттер ведёт себя как открытый диод, и вывод платы оказывается почти замкнут на землю. Один килоом решает вопрос.

Мотор выключается — транзистор сгорает

Катушка в момент разрыва отдаёт всплеск напряжения. Нужен защитный диод параллельно нагрузке, катодом к плюсу питания.

Взят 2N2222 вместо BC547

Выводы расположены зеркально. Крайние меняются местами, и схема работает наоборот.

Что понадобится