What would be the least amount of Arduino I/O needed when handling 7-segments displays through a 74HC595?
I know 3 pins are needed for the shift register.
What I'm still not sure is if I need an extra pin per digit, since common segments are connected in parallel to the IC.
Do I?
For example, here are 8 daisychained. Shift out 8 bytes to update them.
I prefer common anode 7-segment displays, with TPIC6B595 for a shift register, can sink the max current the LEDs will allow, vs the 70mA total current limit of 74HC595.
Alternately, use a MAX7219 to control up to 8 common cathode 7-segment displays. Still just 3 pins.
If you multiplex the displays (which is practical up to at least 4 digits), then you need 7 control lines for the digits (or 8 if you want to drive the decimal points as well), plus 1 per digit. So 11 or 12 Arduino pins will drive 4 digits without using shift registers - although you need 4 transistors or similar for the digit drivers.
If you don't multiplex the displays, then it's 7 or 8 control lines per digit - so about one 8-bit shift register per digit. But you can drive all the shift registers from just 3 Arduino pins. Or use a dedicated driver chip as Crossroads suggests.
Here's an example of MAX7219 and 8 digits, with the digits being either common cathode 7-segment displays, or just discrete LEDs wired up like 7-segment displays.
dc42:
If you don't multiplex the displays, then it's 7 or 8 control lines per digit - so about one 8-bit shift register per digit. But you can drive all the shift registers from just 3 Arduino pins.
For instance, if I have 50 digits with their respective shift registers, I still can handle all them with only 3 arduino pins? (besides current limitations of course)
That would be great.
dc42:
Or use a dedicated driver chip as Crossroads suggests.
I'm sure that's a proper solution, it's just this is getting so complicated to me that I'm trying to avoid any new variables.
if I have 50 digits with their respective shift registers, I still can handle all them with only 3 arduino pins? (besides current limitations of course)
Yes you can, but the '595 is not a great choice for LED driving, there are similar chips that only need a single resistor to set the current for all LEDs (eg TLC5916) plus as CrossRoads showed there are multiplexed chips as well.
Close, the 1st byte will wind up in the Nth register, the Nth byte in the 1st register. The register do not "process" the bytes until the latch pin is toggled, until that point all data is passed through.
I guess you're keen on using a 1000 resistors then.
Also bear in mind that the '595 can only source of sink 70mA total, so you should limit the LEDs to about 8mA each.