Shift register clusters of leds

I'm putting together a circuit so that I can control 8 clusters of 4 leds via the arduino. The leds are 10mm 3.3v 20ma variety, which I've calculated take 80mA total (in parallel) per cluster of 4.

I plan to use a 74HC595 shift register to control the leds and a Darlington Transistory Array (ULN2803A) to beef up the power to cater for the 32 leds. An external 5v supply will be used to provide additional current to power the leds.

I'm a software engineer by trade, so electronics is pretty new to me. Can anyone give me guidance as to whether this circuit looks correct please?

|500x489 [Larger Image]

Most of us don't care for reading fritzing digrams. Why don't you redo that as a schematic?

It looks OK to me with the exception that two of your data connections on the Fritzing diagram have strayed into the power rails.

74HC595, add a decoupling 100nf capacitor on your power pin to GND.
As mentioned, a schematic is needed.
.

A darlington array has a dropout voltage of almost 1volt at 80mA. 5volt - 3.3volt (LED) - 1volt (ULN) = ~0.7volt left for the resistor.

8 * 80mA = 640mA * 1volt dropout = 640mW of heat into the ULN chip. It will get ~40-50C hotter than ambient when all LEDs are on.

640mA + Arduino = ~700mA total.

A TPIC6*595 could replace the 74HC595 and the ULN2803. Works the same as the 74HC595. Has mosfet outputs (doesn't get as hot).

If you use a 9volt supply for the LEDs, then you can connect two LEDs in series. Doubles the amount of LEDs, or halves the total current used. The Arduino is happy with 9volt on the DC socket or on V-in. Leo..

Thanks for replies guys.
I’m working on the schematic and will post it up once complete.

@Leo - Thanks for the calculations, that really helps. Driving the leds with 12v in series may be another option, which would half the power needed for leds. I don’t anticipate all leds being on all at the same, which should help.

Is there any considerations to worry about if powering the Arduino by 12v? How much tolerance is there in the supply, e.g. if it receives 12.5v, will it fry?

absolute0:
Driving the leds with 12v in series may be another option, which would half the power needed for leds. I don’t anticipate all leds being on all at the same, which should help.

Is there any considerations to worry about if powering the Arduino by 12v? How much tolerance is there in the supply, e.g. if it receives 12.5v, will it fry?

  1. That would be three LEDs in series. A problem if you want clusters of four.

  2. 12volt (<16) on the DC socket or on V-in is ok if you don’t draw too much current from Arduino’s 5volt or 3.3volt pins. Use the DC socket if you can.

Another option is a 5volt cellphone charger with USB socket to power the Arduino.
Just plug Arduino’s USB lead into that.
Then you can use any other supply, e.g. an old 19volt laptop supply, to power as many LEDs as you want.
Leo…

Use TPIC6C595 or TPIC6B595 instead of 74HC595+ULN2803. Can sink 100 or 150mA per output from 12V or higher sources without issue. 74HC595 is really overstressed if more than 70mA is used, you can blow the internal VCC or Gnd lead.

I have up to 12 of TPIC6B595 on this board for driving up to 12-digit displays made of LED strips: http://www.crossroadsfencing.com/BobuinoRev17/ |500x455

absolute0:
I’m putting together a circuit so that I can control 8 clusters of 4 leds via the arduino. The leds are 10mm 3.3v 20ma variety, which I’ve calculated take 80mA total (in parallel) per cluster of 4.

I plan to use a 74HC595 shift register to control the leds and a Darlington Transistory Array (ULN2803A) to beef up the power to cater for the 32 leds. An external 5v supply will be used to provide additional current to power the leds.

20mA per led, 1 led per pin, up to 8 per 2803, I get 160mA total.

If you use more voltage to drive leds in serial they all use the same 20mA of current, the voltage drop is the work making the light. You would still use 160mA total.

Why couldn’t a 74HC595 drive 20mA per pin and what output V is half the maximum?

74HC595 has an absolute max rating on its Vcc and Gnd pin of 70mA.

A shift register like TPIC6B595 is rated for 150mA on each output, from sources up to 50V.

Use the right part for the task.

Someone should tell Arduino and Adafruit though: https://www.arduino.cc/en/Tutorial/ShiftOut

Those are 220 ohm resistors on red leds the chip is supposed to be able to drive.

Red LED, Vf = 2.5V? (5V - 2.5V)/220 ohm = 11.36mA x 8 = 90.88mA, so yeah, overstressed. With that much current, Vsource might be dropping thru the chip, may not be 5V at the IO pins.

Real engineer wouldn't (or shouldn't) use that for a production model.

"Real engineer. . . " |500x333

At RPI, we are the Engineers. Student Union store I believe still sells train engineer hats.
“In the early years of intercollegiate athletics, RPI teams were simply called the “Cherry and White.” By 1921, the basketball team was referred to as the “Fighting Engineers” and gradually all teams were called the “Engineers.” The name, however, was never personified into a mascot. The surveyor logo may have been an attempt to bring the name to life.”
Our Mascot in 1985 when I graduated and RPI won the NCAA Division 1 Mens Ice Hockey title (and my team won the intramural championship).

Our Mascot apparently changed in 1995, years after I left and before my son started.

Today is see how many times your posts get lost day.

One EE forum tells that the more current you draw from a 595 pin the lower the output V.

Table example shows that with VCC 4.5V, just 6mA sourced gets output 4.3V. What happens when you try to drive 8 pins through those resistors and leds?

Hi, let’s pick up on the HC595 maximum output pin currents: From the datasheet HERE:

---------------------( COPY )---------------------
Table 4. Limiting values
In accordance with the Absolute Maximum Rating System (IEC 60134). Voltages are referenced to GND (ground = 0 V).

Symbol Parameter Conditions Min Max Unit

VCC supply voltage 0.5 +7 V
IIK input clamping current VI < 0.5 V or VI > VCC + 0.5 V - 20 mA
IOK output clamping current VO < 0.5 V or VO > VCC + 0.5 V - 20 mA
IO output current VO = 0.5 V to (VCC + 0.5 V) pin Q7S - ±25 mA pins Qn - ± 35 mA
ICC supply current - 70 mA IGND ground current -70 - mA
-----------------( END COPY )----------------------
Sorry, a litle unclear in copy. See datasheet.

The way I read it the 70 mA is the maximum SUPPLY current to the chip, not maximums for the output pins.

The 8 output pins are rated at ± 35 mA each. This is not related to the 70mA the chip itself may draw for its internal circuits. I find no spec. limitation for the Vcc and Ground PINS, but it is implied that it could be the sum of the 70mA plus 8 times the ± 35mA. Lots of working examples like the Arduino one show 8 LEDs with resistors and work fine.

Make sense??

Thanks GoForSmoke and Crossroads for provoking a good look at this.

So how would a group of IO pins output (source) more than 70 mA if that is all the Vcc pin is rated for? The current has to come from somewhere. Just because the examples work doesn't mean the supply pin is not being overstressed.

If you look at similar data for cd74AC164, http://www.ti.com/lit/ds/symlink/cd74ac164.pdf "±24mA Output Drive Current" where they explicitly say the absolute max can be more: "DC VCC or Ground Current, ICC or IGND (Note 3) . . . . . . . . .±100mA" "3. For up to 4 outputs per device, add ±25mA for each additional output." >> Thus 8 outputs up to 200mA would be absolute max and the table on page 3 shows 24mA of source current for the IO pins.

While 74HC595 does not show any increased max for VCC with more IO, and the comparable table on page 6 only shows 6mA with Vcc of 4.5V (7.8mA with Vcc = 6V) http://www.ti.com/lit/ds/symlink/sn74hc595.pdf "±6-mA Output Drive at 5 V"

Thus I can only conclude as an Electrical Engineer that sourcing more than 70mA total and 8mA per IO pin is overstressing the 74HC595 and I will not suggest to anyone who wants any longevity from their parts to exceed that.