I'm new to Arduino - and electronics in general - and am having a frustrating problem with two serial-to-parallel 74HC595 chips trying to drive two 7-segment LED displays. The LEDs are both common cathode, and each LED input has its own 510 ohm resistor, connected up to an output of a 74HC595. If I unplug the common cathode from A, I see the correct display in B. If I unplug the common cathode from B, I see the correct display in A. But when both common cathodes are plugged in, B starts displaying rubbish (mostly it's just blank though) while A displays correctly. It's like there's not enough power to go around. I'm using the 5V power output, because that's what the 74HC595 chips need (actually it can be between 2V and 6) and I don't want to start frying chips.

If anyone can point out what I'm doing wrong (or what I could potentially try to get it working) that would be great. I am working on a hobby project where I was hoping to have 6 of these LED and 74HC595 chips hooked up.

  • \$\begingroup\$ Is there any difference in behavior if you were to display "11" or "88"? \$\endgroup\$
    – W5VO
    May 19, 2010 at 3:57
  • \$\begingroup\$ how much current is your power supply rated for? what are you using? \$\endgroup\$
    – vicatcu
    May 19, 2010 at 15:24
  • \$\begingroup\$ @W5VO: if I sequentially (and cumulatively) light segments a through g, it works up to c on both LEDs. Then, when I add the d segment into the mix, LED2 goes blank and LED1 displays a to d. If I unplug the ground lead at this point, and then plug it in, LED2 lights up correctly for a brief moment then goes out again. \$\endgroup\$
    – Jono
    May 19, 2010 at 17:43
  • \$\begingroup\$ yea you clearly are current limiting your voltage supply based on the previous comment... \$\endgroup\$
    – vicatcu
    May 20, 2010 at 1:07
  • \$\begingroup\$ @vicatcu: I will have to look at the numbers; presumably it would mean measuring the current through every input and output to the circuit (3.3V, GND and also the 3 digital input pins used to drive the ICs' data/clock/latch) \$\endgroup\$
    – Jono
    May 20, 2010 at 7:11

1 Answer 1


From what you said about the resistor, figuring nearly-to-the-rail output from the CMOS 74hc595 and about 1.25V diode drop, each segment probably is pulling about 7mA. If you get two full displays going that's starting to add up. Just 14 segments at this current (not even two full digits worth) you're already breaking 100mA. Not to mention that if you are powering the 74HC595's off the same 5V source that's still more current, though thankfully not too much since it is a CMOS device.

I'd have to look at the specs of the arduino to be sure, but it wouldn't be surprising if the tiny little regulated supply on the arduino isn't up to it. Even if it were rated for it, I'd probably try to at least feed the 74HC595's with a separate 5V supply. To use a separate supply, be sure to tie the grounds together.

If you plan on running 6 digits, accounting for all segments on, you'd want something with at least 500mA or even better 1000mA. It's better to have the amp-capacity and not need it, than need it and not have it.

  • \$\begingroup\$ Your answer got me thinking about my next steps, which include using the Arduino as a digital switch for other self-powered devices. For instance, controlling a RC vehicle with its own LiPo battery. For now though, I will sit down and try do the math to see how a separate supply might help. \$\endgroup\$
    – Jono
    May 19, 2010 at 20:41

Not the answer you're looking for? Browse other questions tagged or ask your own question.