Светодиод не мигает при использовании транзистора

Я хочу управлять светодиодом с помощью транзистора. Светодиод получает питание от внешнего источника питания 5 В постоянного тока.

Для транзистора я использую базовый резистор 1 кОм. Транзистор представляет собой BC547C (npn). Спецификация доступна здесь. Светодиод красный (3 мм), потребляет ток 20 мА и требует 2 В.

У меня есть очень простой скетч Arduino и схема подключения:

Код:

#define ledPin 6

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

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}

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

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

Проблема:

  1. Светодиод не мигает, а постоянно светит на полную мощность.
  2. Отключение ledPin 6 от Arduino (для имитации digitalWrite(ledPin, LOW)) по-прежнему позволяет светодиоду светиться, но не так ярко. В этом случае светодиод должен быть выключен, а не просто затемнен до 50% яркости.

Что я уже пробовал:

  1. Я пытался использовать различные базовые резисторы. Пробовал 2кОм, 3кОм, 2,5кОм, 470Ом, 1,5кОм. Поведение не изменилось.
  2. Я пробовал использовать разные светодиоды. Такое же поведение. Светодиоды горят постоянно, не мигают и гаснут при отключении pin 6.
  3. Я использовал другой BC547C, чтобы проверить, не сломался ли первый. Это не так. У меня все еще такое же поведение.
  4. Подключение светодиода напрямую к Arduino без транзистора и внешнего источника питания позволяет светодиоду мигать именно так, как это было определено в коде.

Есть идеи? Я несколько раз проверял проводку в своей установке. Это не должно быть проблемой.

, 👍3

Обсуждение

Вы должны обеспечить общую основу. Добавьте провод, соединяющий отрицательный «-» разъем вашей батареи с GND в вашем Arduino., @smajli

@smajli это не объясняет, почему светодиод остается включенным, когда база не подключена к gpio ..., @Sim Son

@WalterBeiter, не могли бы вы опубликовать изображение своей установки? Вы уверены, что назначили правильные контакты на BC547? Из предоставленной вами информации и устранения неполадок, которые вы уже сделали, я не вижу ничего, что могло бы быть неправильным., @Sim Son

@Sim Son Я согласен, но мы должны с чего-то начать..., @smajli

https://majenko.co.uk/blog/importance-sharing-grounds, @Majenko

Есть ли что-то особенное в диоде? Кажется, вы используете варактор в своей схеме., @pipe

Ничего особенного с моим диодом. Варактор? Понятия не имею, что это такое., @WalterBeiter

@WalterBeiter Итак, почему вы нарисовали его двумя черточками вместо одной? См., например, [это изображение](https://www.electronicsdesignhq.com/wp-content/uploads/2016/11/diode-symbol.jpg)., @pipe

Извините, не знал этого лучше. Спасибо, что указали на это., @WalterBeiter


1 ответ


Лучший ответ:

8

Без общей ссылки (земли) между источником питания Arduino и внешним источником питания, опять же, у вас будет плавающая база, так как вы не можете знать, как выглядит выход 5 В Arduino (или локальная земля) по отношению к внешняя цепь.

Соедините два заземления. Что должен скорректировать яркость светодиода по отношению к уровню выходного контакта Arduino. Затем, если вам нужно, чтобы внешняя цепь вел себя определенным образом, когда база отключена от Arduino, добавьте резистор 10K от базы транзистора к внешнему +5, если вы хотите, чтобы светодиод был включен, или к земле, если вы хотите, чтобы он был выключен. Опять же, я предполагаю как значение pullup/pulldown (но 10K должно быть в пределах поля), так и смысл переключения («Вкл.» или «Выкл.» для базы на +5), но из состояния ожидания в вашей точке ( 2.), думаю, я прав.

Обновление: но см. комментарий @EdgarBonet ко мне о BJT. Я бы по-прежнему не оставлял ввод плавающим на практике, но это кажется неуместным в вашей схеме.

,

Что касается плавучей базы: ОП использует BJT. В отличие от полевого транзистора (управляемого напряжением), управляющей переменной для биполярного транзистора является ток, подаваемый на его базу. Оставить базу плавающей — это законный способ установить этот ток равным нулю., @Edgar Bonet

Я не знал этого о BJT, @EdgarBonet, так что спасибо за это. Исправляю свой ответ..., @JRobert

Единая опорная площадка устранила все проблемы!, @WalterBeiter