Im trying to figure out all the ways to light up LEDs, particularly with microcontrollers.
I've experimented with a few ways, but so far, I havnt used any driver chips, just resistors and shift registers. I would like to learn about all the commonly used chips, and what they are good or not good at.
I have Itemized these factors
-
single color LED
-
RGB LEDs
a)Common Anode
b)Common Cathode
c)LED order (RGBRGBRGB, or RRRGGGBBB) -
On/Off
-
Pulse Width Modulation
-
Voltage limited (resistored)
-
Current limited (LED driver)
-
current sink
-
current source
And I've identified several LED drivers that I've seen postings about:
WS 2803/WS 2801
TLC 5940
AS1130
MAX7219
It seems to me, driving multiple LEDs can be grouped into 2 groups, shift registers + resistors, and LED drivers.
Shift registers seem the most versatile, they work with common anode, common cathode, single or RGB, or segmented displays, multiple inputs or outputs, and even non-LED things. They also seem to be the lowest cost solution. The only downside seems to be all the resistors you will need.
I havnt used any LED drivers yet, but they seem to be a bit more finicky about how you can use them. Driver chips seem to be common anode only. I think I did find chips that would work with common cathode, but for one reason or another, they were not suitable.
I would like to know more about LED driver chips, specifically ones that are supported on the arduino, and what chips are good for what specific instances (like maybe one one chip works good if you dont need PWM, with RGB LEDs, or works good with RGB, does PWM, but only works on common anode (TLC5940).)
I assumed current source meant that the chips controls + voltage, and current sink meant controls the ground, but then I read wikipedia, and am more confused, not less confused.
So, help me identify LED drivers, an the specific applications, limitations and benefits, and examples.