Hey, I'm doing this project where I'll be soldering about 4-5 leds together (as in join all the anodes together, same with cathodes) and I plan to use this 74HC595 shift register to power it up as in I'll use one shift register to light up 8 bunch of 5 leds join together. The problem is that I'm afraid that the shift register won't have enough power to light it up at full brightness. Is there a way where I can plug in an external power source instead of relying on the arduino. Thanks
The problem is that I'm afraid that the shift register won't have enough power to light it up at full brightness.
Yes you are right it won't.
(as in join all the anodes together, same with cathodes)
No you can't do that, you need a current limiting resistor in the anode (or cathode) of each LED.
Best bet is if you feed the output of the shift register into a ULN2003 darlington driver and let that do the switching.
Not a good idea for a couple of reasons. First, putting LED's in parallel will lead to unequal current sharing. One LED will likely be brighter than the rest, and some may be quite dim. This is because they do not all have the same forward voltage, so as soon as the one with the lowest forward voltage turns on, it will present the lowest impedance and carry the majority of the current.
Second, a 74HC595 is not designed for the kind of current you are trying to push (~10-20mA times 4-5 LED's --> 40-100mA).
I would suggest putting the LED's in series, using a "high-voltage" supply like 12V (higher than the sum of the forward voltages of your LED's in series), a small-ish resistor to drop the rest of the voltage in series with the LED's, and a logic-level MOSFET (e.g., NDP6060L or similar) to turn the whole thing on. You can then connect the 74HC595 output to the MOSFET gate through a resistor (e.g., 1k) to turn on the entire string of LED's.
-- The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons
Thank you for the replies. RuggedCircuits, What you are saying is that I should get a MOSFET or transistor and solder my external power source to one side and the leds to the other with resistors of course and use the shift register to turn on or off the MOSFETS?
What I'm suggesting is that you do this:
The 74HC595 would replace the Arduino board digital output in the above schematic.
The current limit resistor RLIMIT would be computed (approximately) as (V+ - N*Vf)/I where: * V+ is the voltage source you choose (e.g., 12V) * N is the number of LED's in series * Vf is the typical forward voltage of each LED * I is the desired current running through the LED string.
For example, if V+=12V, N=4, Vf=2V, I=40mA then I would start with R=(12 - 4*2)/0.04=100 ohms. Take care that that resistor can handle the power dissipation:
P = I*I*R
In this example, the power dissipation is 0.04*0.04*100=0.16 so a quarter-watt resistor would do.
-- The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected