Уменьшить яркость светодиода с помощью NPN-транзистора

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

Я хочу приглушить (увеличить и уменьшить яркость) некоторые светодиоды (каждый по 3,5 Вт). Для этого я использую Arduino Nano, потенциометр 10k и транзистор NPN (TIP41).

Мне удалось управлять потенциометром как переключателем: вкл/выкл. Теперь я хочу контролировать его яркость с помощью потенциометра. Я не получаю того, что ожидаю, потому что светодиод горит всегда, за исключением случаев, когда потенциометр повернут до упора вправо (куда подключен Vcc).

Это схема:

затемнение светодиода с помощью транзистора npn

Это мой код Arduino:

int pinPotentiometer = 0;
int pinTransistor = 3;

void setup() {
  Serial.begin(9600);  
  pinMode(pinTransistor, OUTPUT);
  pinMode(pinPotentiometer, INPUT);
}

void loop() {
  int potValue = analogRead(pinPotentiometer);
  int outValue = map(potValue, 0, 1023, 0 ,255);
  Serial.println(outValue);
  digitalWrite(pinTransistor, outValue);
  delay(100);
}

Потенциометр работает нормально, потому что я считываю серийные значения от 0 до 255.

Я использую не тот транзистор? Или, может быть, я использую его неправильно?

ПРИМЕЧАНИЕ: для проверки схемы я использую небольшой светодиод диаметром 5 мм, а не светодиод мощностью 3,5 Вт, поэтому у меня нет внешнего источника питания.

Большое спасибо!

, 👍0

Обсуждение

Используйте analogWrite() вместо digitalWrite(). И убедитесь, что вы используете вывод с поддержкой ШИМ., @Majenko


2 ответа


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

1

Попробуйте использовать AnalogWrite().

Записывает аналоговое значение (сигнал ШИМ) на контакт. Может использоваться для освещения светодиода с разной яркостью или для привода двигателя с разной скоростью. После вызова AnalogWrite() вывод будет генерировать устойчивую прямоугольную волну с указанным рабочим циклом до следующего вызова AnalogWrite() (или вызова digitalRead() или digitalWrite()) на том же выводе. Частота ШИМ-сигнала на большинстве выводов составляет примерно 490 Гц. На Uno и подобных платах контакты 5 и 6 имеют частоту примерно 980 Гц.

Источник: https://www.arduino.cc/reference/en/ язык/функции/analog-io/analogwrite/

,

Учитывая использование защищенного МОП-транзистора, он будет работать намного холоднее, чем транзистор. Причина, по которой транзистор имеет падение напряжения коллектор-эмиттер 0,7 В, МОП-транзистор будет меньше 0,01 в зависимости от выбора. Вам не хватает резистора от базы к Nano. Используйте что-то от 50 до 120 Ом для МОП-транзистора, чтобы он оставался сверхстабильным. Обязательно используйте отдельный источник питания для светодиодов высокой мощности. Также подключите заземление источника питания., @Gil

@Gil - ОП заявил, что они используют транзистор TIP41. Возможно, ваш комментарий будет полезен, если вы добавите его к вопросу., @VE7JRO


0

Транзисторная база должна быть подключена к ШИМ-стороне Arduino, а не к коллектору. поставь резистор 1кОм между этой базой и ардуино тоже. коллектор для нагрузки, нагрузка для положительной батареи или источника питания. эмиттер на землю.

,

Вам также нужен резистор на стороне коллектора, если нагрузкой является светодиод. Для светодиода мощностью 3 Вт вам понадобится толстый резистор (несколько ватт)., @DataFiddler