Уменьшить яркость светодиода с помощью NPN-транзистора
Я знаю, что есть много вопросов по этой теме, но я безуспешно перепробовал все возможные онлайн-руководства.
Я хочу приглушить (увеличить и уменьшить яркость) некоторые светодиоды (каждый по 3,5 Вт). Для этого я использую Arduino Nano, потенциометр 10k и транзистор NPN (TIP41).
Мне удалось управлять потенциометром как переключателем: вкл/выкл. Теперь я хочу контролировать его яркость с помощью потенциометра. Я не получаю того, что ожидаю, потому что светодиод горит всегда, за исключением случаев, когда потенциометр повернут до упора вправо (куда подключен Vcc).
Это схема:
Это мой код 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 Вт, поэтому у меня нет внешнего источника питания.
Большое спасибо!
@xdola, 👍0
Обсуждение2 ответа
Лучший ответ:
Попробуйте использовать 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
Транзисторная база должна быть подключена к ШИМ-стороне Arduino, а не к коллектору. поставь резистор 1кОм между этой базой и ардуино тоже. коллектор для нагрузки, нагрузка для положительной батареи или источника питания. эмиттер на землю.
Вам также нужен резистор на стороне коллектора, если нагрузкой является светодиод. Для светодиода мощностью 3 Вт вам понадобится толстый резистор (несколько ватт)., @DataFiddler
- установка выходного аналогового/цифрового контакта на землю
- Управление несколькими вентиляторами с помощью Arduino Uno
- Переключение соленоида С помощью выхода Arduino 5V?
- Реле 12 В с использованием Arduino
- Беспорядок с потенциометром I2C
- Использование прерывания внутреннего таймера для чтения аналогового датчика
- Помогите с простым постепенно более ярко светящим светодиодом
- Сенсорный датчик и потенциометр - Нужна помощь
Используйте
analogWrite()
вместоdigitalWrite()
. И убедитесь, что вы используете вывод с поддержкой ШИМ., @Majenko