charlieplexing seven segment displays


relatively new to arduino and playing with a few projects to get up to speed with it. I started with a simple countdown on a single seven segment display and now I am looking to up the number of of seven segment displays.
I have been through instructables and google looking at multiplexing so i roughly get the wiring but the coding is going right over my head!

any help would be great,


Charliplexing and multiplexing are two different things. You won't be able to do Charliplexing on a seven segment display because the LEDs that form it have a common connection, normally the anode.

Multiplexing is simply turning on one bunch of LEDs on at a time. This makes the circuit and interface chips simpler. If each bunch is turned on in turn fast enough it looks like the are all on at once.

Example code is available in my project:-

Very impressive project mike but most of which flew over my head.

So am I right in saying that to control two seven segments I would wire them both together through my 4511 that I used to control one seven segment display? and to control the number being displayed on them I do this through the cathode of the seven segment.

You can't use a 4511 for multiplexing. (well not easily)

You connect the cathodes in parallel. That is display 1 segment a to display 2 segment a, Display 1 segment b to display 2 segment b .... and so on.

Connect these cathodes to a current sink like the ULN2803.
Connect the two anodes to a separate controllable current source like the P channel FETs I had in my monome.

  1. To drive it put the anode of display one high (by driving the gate of the FET low) and turn on the current sinks of the segments you want to be lit by putting their inputs high.

  2. After a short time say 20mS turn off display one, turn on display two and set the current sinks for the segments you want lit on display two.
    After a short time (20mS) turn this off and repeat step 1.

When written in words it looks more complex than it really is.

This assumes you have a common anode 7 segment display, for a common cathode, connect the cathode to the current sinks and the anodes to current sources. As there is only going to be one segment on at a time you can connect the current source through a resistor straight to the arduino output pins.


You can't use a 4511 for multiplexing. (well not easily)

Just to prove myself wrong, here is a way of using the 4511 to multiplex. Basically put a transistor in the cathode and parallel up the anodes. Any small signal transistor will do like a BC183.


What CAD program are you using for your schematics?


What CAD program are you using

It's called P. E. N. but I am not sure what it stands for. The quality is not too good but it has an almost unlimited range of symbols. Low software footprint and will work in the no power mode during daylight hours.

Thanks for the the help with that mike did the instructable was great for understanding it more.

The next stage of my project would be to get 3 seven segment displays counting down staring from a minute to zero.

OK you are on you way now. :slight_smile:
Best of luck with it.