powering large numbers of LEDs

hi guys-- just wondering if you could provide some input:

i’m building some lights that consist of larger parallel arrays of LEDs (around 26 LEDs per array), and I want to turn each array on and off using the digital output pins on the Arduino. The atmega’s datasheet says that it is only capable of putting out 40mA per digital pin (correct me if I’m wrong on that), but they are actually surprisingly bright connecting each of the 12 arrays of 26 LEDs to a different digital output pin. To clarify, these are “ultrabright” LEDs of varying colors (forward voltage of around 30mA), each with a 68 ohm series resistor.

So, although this works pretty well (even left them on for long periods of time-- no damage to the LEDs or anything), the LEDs are not as bright as they could be, and this is obviously not the most effective way to power them. I want to be able to turn them on and off with the Arduino, but I won’t be using PWM. Would relays be my best option? or maybe an LED driver?

I don’t need to address the LEDs within the arrays individually, which is why I initially avoided buying LED driver chips. Basically, my understanding is that I’m just trying to bump up the current available to each array of LEDs. It seems like maybe I could use a transistor of some kind between the digital output pin and the LEDs as a kind of amplifier? That could be wrong.

Like I said, these are actually working pretty well (surprisingly!) and are still really bright, but I know that this isn’t the best way to drive LEDs, and for the sake of future projects, I’d like to figure out a better way to do it.

Any ideas?

You can use a transistor to drive the LEDs, as you said. A transistor is essentially the same thing as a relay, except that relays isolate the switching and switched current/voltages. But since LEDs run on DC and are similar voltages anyway, a transistor would be just fine. There’s some schematics for that in the playground somewhere.