correct resistor / transistors advice sought

hi as mentioned in the title I need some advice regarding a setup I have built but need to modify. It is a system for controlling 17 x 1W LED's, they currently run from an external power supply running around 8v through the following circuit. However I need to make this setup work from a car battery now (it is being installed into a mobile barrel organ) which is 12v. I am using 2N222 transistors and 3W resistors in my current setup, so am I right in thinking I need some transistors with a higher resistance rating? any advice would be greatly appreciated

would something like this do:

Some suggestions:

  • Your use of a resistor is very inefficient for reducing the 8V (or 12V) down to the LED voltage (which is....??? and the current....???)

  • Your transistor is rated at 12V and 50mA...very underpowered for this application. You need to a) find a transistor with a higher voltage rating and current rating (e.g., TIP31C, TIP120), or b) use a MOSFET (see here)

  • There should be a resistor (1k or so to start) from the board output to the transistor to limit the current coming out of your I/O pin.

  • Consider using a dedicated constant-current LED driver

thanks for the advice - i thought that about the resistor also when I was setting everything up but since it worked i didn't probe it further. However the 1K resistor from the board to the transistor is an easy one to implement, I have ordered a TIP120 so will give that a go tomorrow. Thanks again

just a quick update - the TIP120 did not really do the job, I think the control voltage it requires from arduino is higher than the board can output, it seemed to be really sluggish in comparison to the 2N222, will try a TIP31C instead.

I think the control voltage it requires from arduino is higher than the board can output

No it only takes 0.7v to turn on a transistor.

It might be that the 10K base resistor is too big try dropping it to 1K or even 500R. Or it could be you have misidentified the pins on the transistor.

The TIP120 is a Darlington so it's going to take closer to 1.4V at its base, but with a gain of 1000, it'll hardly take any base current from the Arduino to turn it on. I'm surprised that it's "sluggish". It might be that it drops too much collector-emitter voltage leaving not enough for the LED's, giving that effect.

A TIP31C might do it, but a MOSFET might be the best choice as it will dissipate the least power and there's no question about how fast it turns on or off.

I agree, using MOSFET transistor for switching loads to ground is nice because you don't have to think about the current gain nor have to calculate the base resistor size, it's the near perfect (well you know, good anyway) solid state on/off switch. Just be sure you use a 'logic level' mosfet that will be fully turned on with the Arduino's 5vdc digital output voltage level.


thanks for all the responses - I have tried a TIP31C and it was even less responsive than the TIP120, I tried them both with a lower base resistor and have ordered a MOSFET transistor instead - hopefully will get it working tomorrow.

Keep in mind that the TIP120 have been doing jobs just like this for ages. Just because you might need an extra resistor or two for biasing to get the results you want is no reason to toss the standard transistor for a MOSFET.

Tried the Mosfet this morning - and perfect results, very fast and fully compatible with my existing circuit. thanks again for all the advice