Dimming a 5W LED array from Arduino

I'm planning to build a fairly large array of LEDs, to a total power of ~5 W, the brightness of which I want to control with an arduino.

If it was just one LED I would just connect it straight to one of the PWM pins on the arduino through a suitable resistor. For something slightly larger I would throw a transistor in as well but my understanding is this would still be unsuitable for something of 5 W power. From other posts I've read on this forum and elsewhere I need to use an LED driver which will limit the current.

I've found quite a few drivers but they don't all support dimming. Quite a few of the Linear Technology LED drivers do support dimming but they only seem to be available in SMD packages. My soldering skills aren't really up to the challenge of soldering SMD so I'm really looking for something in a through hole package.

Does anyone have any suggestions?

It is highly unlikely that you will find any of these high power drivers or any
advanced IC in TH. With the proper tools soldering SMD is not difficult. I find it a lot easier than TH.

(* jcl *)

I had thought that soldering SMD components required a reflow oven and all the associated equipment. I would guess that it would also need a custom circuit board rather than using stripboard which would either require additional equipment or push up the price if I used one of the online services.

I fear you may be right but I hope you're wrong. :frowning:

You can hand solder SMD as long as the parts have terminations on the ends.
QFN and BGA packages could be done on a hot plate.
The tools I use are listed at Loading...

If possible choose packages with a lead pitch of 0.5mm or larger, passives
that are 0603 or larger. Avoid packages with the large thermal pad underneath.
This may not be possible for high power devices although LTC has a fair number of
LED drivers in SOT23 packages. SOT23 is a very easy package to hand solder.

The high frequency LED drivers will most likely require a custom board with
a clean high frequency layout. You may be able to get a design that works
on a stripboard but I would be surprised.

(* jcl *)


www: http://www.wiblocks.com
twitter: http://twitter.com/wiblocks
blog: http://luciani.org

You need one (or a few) BuckPuck LED drivers. They are dimmable (voltage controlled or PWM) deliver constant current regardless of input voltage and are available with pins or leads. I use these for all my power LED projects. They are very easy to work with.

It is perfectly possible to hand solder surface mount components on strip board as this project demonstrates:-
http://www.thebox.myzen.co.uk/Hardware/Econo_Monome.html

You need a fine pair of tweezers, good eyesight of a head mounted magnifier and a fine tipped soldering iron.

It is perfectly possible to hand solder surface mount components on strip board

I'd be inclined to qualify that; "It is perfectly possible to hand solder some surface mount components on strip board", BGA devices being a case-in-point. :wink:

You need one (or a few) BuckPuck LED drivers. They are dimmable (voltage controlled or PWM) deliver constant current regardless of input voltage and are available with pins or leads. I use these for all my power LED projects. They are very easy to work with.

BuckPuck DC LED Drivers

They do indeed look very easy to work with. It looks as though dimming is achieved by reducing the current rather than with PWM though which would limit the range over which dimming would work.

Thanks jluciani and Grumpy_Mike, I'll give the SMD option some consideration.

Grumpy_Mike, you may already know but your PWM tutorial is lacking files - http://www.thebox.myzen.co.uk/Tutorial/PWM.html

BGA devices being a case-in-point

No I've done those as well although only 16 ball arrays. I used the "dead Bug" technique where you mount the chip upside down and wire directly into the pins. I used the Vero Wire system to get the thin wires you need for this.

your PWM tutorial is lacking files

Thanks I didn't even know that was on the web, it's not finished yet and it shouldn't have been posted. ::slight_smile: