Controlling high power LED with transistor and Arduino

Thread Starter

miroslav.p

Joined Apr 20, 2021
15
Hello,
I'm doing a small project and I'm stuck. I want to control brightness of 90v 185mA LED strip with my Arduino Uno. I used bd941 transistor in series with LED strip and I'm sending signal form arduino PWM digital pin to 100om resistor and then to transistor base.(in datasheets for transistor hfe is 40) I was able to fully light up and down my LED but when i tried to modulate signal and lower the brightness of led it was at first barely visible change(brightness is lower but it is barely visible change) and at certain point led diodes start to blink fast and then transistor starts to worm up. I'm using arduino pin at fullest arduinoWrite(pin, 255) and when i want to down brightness i lower number 255 by 25. So after maybe 6 times lowering when number is 100 led strip starts to blink. I could stop at 5 but i didn't accomplish to lower brightness.
I hope someone can help me with this, I'm new at electronics and I'm really bad at reading datasheets for transistors, I'm not even sure that I'm using right one.
 

wayneh

Joined Sep 9, 2010
17,496
I think the 100Ω resistor is too much of a load on the Arduino. Try a 330Ω and see if it gives better or worse results.
 

Irving

Joined Jan 30, 2016
3,845
BD941 is an OK transistor for that job, rated at 120v 3A. with 100ohm base resistor the base-emitter current will be arond 43mA which should saturate the transistor and turn the LED fully on, but is too much for the Arduino. You only need around 7-10mA so a 390 - 560ohm would suffice.
 

Thread Starter

miroslav.p

Joined Apr 20, 2021
15
I totally forgot about Arduino limits, but luckily it didn't damage. I tried with 440om at first but results were worst than this with 100om. So it means that this is not doable with Arduino?
 

wayneh

Joined Sep 9, 2010
17,496
I totally forgot about Arduino limits, but luckily it didn't damage. I tried with 440om at first but results were worst than this with 100om. So it means that this is not doable with Arduino?
It should be OK. You might try a MOSFET such as IRL540N. It's only rated to 100V, so another may be a better choice, but the point is a logic-level MOSFET. It would eliminate the base current concern.

I'm wondering about your wiring, and details of your LED strip. A picture or two might help us spot any problems. Make sure the ground connection to your transistor emitter is appropriate for the current in the LED strip.
 

Irving

Joined Jan 30, 2016
3,845
A MOSFET would be a better option but hi-voltage (>150v) logicFETs are few and far between and come in weird packages. An easier option is to use a gate driver, either a chip or an NPN/PNP transistor pair.

Yes, I'm wondering about your wiring now if a 440ohm didnt work. Can you draw the circuit?
 

Thread Starter

miroslav.p

Joined Apr 20, 2021
15
So you think that I should use MOSFET instead of this bd941 transistor? But I still don't understand why it doesn't work with regular transistor
 

wayneh

Joined Sep 9, 2010
17,496
I forgot to draw a resistor between Arduino and transistor
What can you tell us about the power supply? Do you know if it delivers smooth DC or is it pulsed? It's not a constant-current supply is it? How is the current through the strip controlled?

You can't PWM the current from a constant-current supply.
 
Last edited:
Top