I am very, very new to electronics, so please be patient with me, as I may say something silly. I also hope the question is not too wide, and would like to thank you in advance for spending your time reading it.

Anyway, here goes:

I am attempting to use a 74HC595 shift register to control a seven-segment display with Arduino using only three pins. I have used Autodesk Circuits to test the circuit before I build it. You can see the breadboard and the schematic in here, as well as the program I'm running:


The display is common cathode.

Before I added the 100-ohm resistor to the display's common ground, the simulation would tell me that the shift register would break, as:

a) The current going through the power pins was too high (70ish mA when a max of 50 mA could be used).

b) The voltage to the DS, STCP, and SHCP pins was too high as well (5V, the max being 2.2V)

Oddly enough (to me at least! it may be obvious to someone more experienced than I) this would happen only for digits 1, 4, and 7. All others would display fine without anything blowing up.

Now, my questions are:

a) Why is it not enough to add resistors to each of the anodes?

b) Can the circuit work the same with just a large enough resistor on the common cathode?

c) Why does Autodesk Circuits say that the clock / latch pins in the shift register can only take 2.2V? The register's data sheet seems to indicate it can take up to 6V digital signal. And why would it be alright for digits 1, 4, and 7?

And finally,

Checking some diagrams online, I can see variations of essentially the same thing, such as this one (with no resistor to the common cathode), or even one in a robotics site with just two 220 ohm resistors to the two common pins only.

Are all three ways of doing it (segments only, common pins only, both) correct? How exactly do they differ?

Thanks again! And sorry for the long rant. I just began learning.

  • \$\begingroup\$ Picture in the link is not a schematic! It's just a picture, and anyone have a time to analyse it. \$\endgroup\$ Aug 1, 2016 at 5:31
  • \$\begingroup\$ Hey! Sorry about that, the link is to Autodesk Circuits, and it has a "schematic view" tab top-right. I'll update the link to show that one instead. Thanks! \$\endgroup\$ Aug 1, 2016 at 12:16
  • \$\begingroup\$ Ok lustful-rat, thanks to Neil's answer down there I now understand what you meant by linking to a schematic. I'll make sure to stick to those rules the next time I post something, as I understand how they make everything clearer. Thanks for the feedback! \$\endgroup\$ Aug 1, 2016 at 13:13

1 Answer 1


Those 220 ohm segment resistors are too small. Make them larger, and you can do away with the 100ohm cathode resistor. The HC595 package has a 70mA total limitation on the current in the ground and VCC pins. Although 220ohm gives you 15(ish)mA per segment, which is OK per output pin, the total number of segments is too much. You need to use a minimum of 330 ohm segment resistors, to get to less than 10mA per pin to meet the 70mA abs max limitation in the datasheet, or 470 ohms per segment to meet the 50mA limitation the simulator wants. The 50mA is a better max, as the 70mA is an absolute max spec, not a recommended current level.

Unfortunately the cathode resistor is doing more than what you want, as the changing total current through the display will alter its voltage drop, and hence the brightness of the other segments. Don't use one at all.

BTW, that's not a schematic you linked to, it's a picture. If you want higher response to your questions, learn the difference, and post a schematic next time. You can generate a schematic with the button above the edit post box (the one with the diode, capacitor, pencil and resistor).

  • \$\begingroup\$ Oh, thank you indeed! So, if I understand this correctly, the problem with having one resistor in the common cathode is that, if more segments light up, the display will be dimmer? In any case, thanks for the tip, I actually hadn't considered what would happen to the current when multiple diodes lit up. That does explain why it only happened to certain digits. As for the schematic, sorry, rookie mistake! I take it then it's common practice here to make the schematic in CircuitLab when posting the question, rather than linking to circuits.io? Thanks again, your answer was very informative! \$\endgroup\$ Aug 1, 2016 at 12:22
  • \$\begingroup\$ If you don't have a schematic already, then create it in CircuitLab. If you already have one in LTSpice, Kicad or the like, then cut/paste or linking to that is just fine. It needs component values, reference designators, and be positive up, negative down, signal flow left to right, a schematic that can be read easily and discussed if necessary. Your new link is an improvement, but I think you'll agree it's not easy to read. Is it machine generated from the breadboard view? Usually the schematic is done first manually, which means it can follow the style rules. \$\endgroup\$
    – Neil_UK
    Aug 1, 2016 at 12:40
  • \$\begingroup\$ Thanks a lot Neil! I now understand what you mean. I suppose the minimum I can do is modify the machine-generated schematic in circuits.io to make it readable and style compliant. Still, you raise a very valid point with LTSpice as well – I will learn how to use that (or CircuitLab, or both) to make life easier for people trying to answer my questions. Thank you for your time! \$\endgroup\$ Aug 1, 2016 at 13:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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