I'm sort of new to electronics and such, but I'm curious if I understand things correctly. I read the example at http://www.arduino.cc/en/Tutorial/LEDDriver for controlling multiple LEDs with an LED driver, and I also read the example at http://www.arduino.cc/en/Tutorial/DimmingLEDs for blending colors. I'm not sure if I understand though if these can be combined. For example, I want to to have several "panels" that will fade between all colors of the rainbow. I'm hoping that each panel can have a few LEDs of each color (each color in a panel will be controlled by one pin) and I can fade between different colors in each panel. Is this possible? Would I still use the LED driver as shown in the example, or am I missing something?
Just thought I would clarify my question a bit. Essentially my question is, can an LED driver provide variable levels of output to several different leds or does it just turn each led on or off? If not, is there another way to do this?
Try thinking in terms of low-current signals and high-current signals.
Low current signals like the output pins of the Arduino or a 595 shift register can drive a limited amount of current-- about 20-30ma, or one LED.
That same pin can be fed into a transistor amplifier (http://www.arduino.cc/playground/uploads/Learning/multiple_leds2.jpg) that amplifies the current-carrying capacity of the low-level signal. The high-current signal that results can drive 2,4, 10, 20 or 100 leds, depending on the type of transistor used.
I'm sorry, but I didn't follow. Was that a yes? Are the only pins I can use 9, 10 & 11 because they have PWM. If so, how do I get them to simultaneously control multiple leds?
Yes, you can use the PWM pins to drive more than one led at at time. Just add the amplifier circuit above to drive four or five leds; use a larger transistor to drive more LED's. It will amplify the PWM signal so the LED's come on at varying brightness levels.
Okay, I got my shift registers and am able to turn many LEDs on and off. Your multiple LED circuit lets me light those LEDs at the same intensity (using PWM pins without the shift register). But I need to combine these. I need many LEDS at many different intensities. Here is exactly what I'm doing:
I'll have 5 sets of LEDS. Each set will be made up of 4 Red, 4 Green, and 4 Blue. For one set of LEDs, I might want to set all Greens to 100, Reds to 255, Blues to 100. The next set of LEDs will have different values. This way each set of LEDs can be installed behind a sheet of paper ans something to diffuse the light into one color - thus all colors of the rainbow, hopefully!
Is my original assumption that I need a LED driver correct? Or is there some way to force the shift register to output a PWM so I can have one pin of the shift register control one color of a set? I've tried making the shift register do this with delays - lighting a red for 10ms, then off, then on for 10ms hoping it would be the same as sending a PWM of 30 to the Red.
Thanks! Sorry I'm so confused. I'm still learning.
yes it sounds like you will need drivers. The general rule is that one Arduino pin can drive one LED. For multiple LED's driven from the same pin or signal you need a driver circuit.
If I understand you correctly, you want different levels for numerous groups of LED's: instead of a group of LED's going on/off, you want them to be able to be able to put out a range of light levels from dark to bright.
So....if you have more than 3 batches (for the existing PWM outs), you'll need some kind of analog expander chip.
You can't fake the PWM expander as you have been trying to do above.. it won't work. You'll need something that multiplexes one output into many.
They are talking about just that problem here: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1173831471