Shift Register / CD4511 combo

Hi All,

First post...

For some reason, I'm obsessed by lowering the amount of pins I'm using to run 4 digits 7 segments LED display common anode (or cathode). I came up with the conceptual idea of using a 595 shift register to feed a CD4511 decoder.

The shift register would feed 4 bit (BCD) to the CD4511 - connected to the led display - and four bit to the common anode or cathode to close the circuit. Then I would multiplex something like:

BCD - 4 Cathodes 0001 0001 (writes 1 on digit 1) 0001 0010 (writes 1 on digit 2) 0001 0100 (writes 1 on digit 3) 0001 1000 (writes 1 on digit 4)

This would allow to daisy chain to add displays without increasing the number of pin used.

My first assumption is that there is either a better way to do it or that it does not work but, I'd like to understand how or why,

Thanks for your input,

Hi and welcome.

Yes in theory it would work, but the display would have to be very dim to avoid overloading the '595. Each '595 output could only source/sink around 20mA, which, shared among 8 segments and 4 digits, would be 20/32 = 0.6mA each!

For learning purposes, an interesting question, but in practice you could just use a max7219. That could drive up to 8 digits (brightly) with only 3 Arduino pins. Or an saa1064 could drive 4 digits with only 2 lines (I2C). Or one of these with only 1 line!

Amusing exercise, but not really worth the effort for poor results and frankly, messy design.

Use a MAX7219; bright display, easy to use, three pin interface for as many digits as you want (within reason- 8 digits, 16 digits, 24, 32 - may get a bit dickey by the time you get to 80 digits, still three wires).

Or just go buy a 4 digit or 8 digit display on eBay using a MAX7219, or a 16 digit display with a corresponding library using a different chip.


Thanks for the replies; already learned a lot through that exercise :)