I was making a breadboard demo for a Microcontroller class. Basically my project is to make a score keeping device. I want to drive 4 seven segment displays using an atmega8. I read about charlie plexing and understand that it will enable me to drive all the 4 displays using a single port. I understood the theory but can't really figure out how to make the charlie plexing circuit on a bread board. Can anyone please help?

  • \$\begingroup\$ Are you saying you have tried to build it and it didn't work? Make sure you aren't trying to pull too much current from your microcontroller. \$\endgroup\$
    – Kellenjb
    May 29, 2010 at 21:01
  • \$\begingroup\$ I had already seen all the mentioned links. What I really wanted was a way to wire charlieplexing on the breadboard. The way I see it, it will require too much of wires. There has to be a better way. As soon as I get my computer working I would post a picture of how I had done it. \$\endgroup\$
    – Rick_2047
    May 30, 2010 at 6:19
  • \$\begingroup\$ You don't need to go directly from a µC pin to all LED pins, instead you can use chains of wires. \$\endgroup\$
    – starblue
    May 30, 2010 at 7:15
  • \$\begingroup\$ @starblue can you elaborate a little \$\endgroup\$
    – Rick_2047
    May 30, 2010 at 7:33
  • 1
    \$\begingroup\$ @Rick_2047: 4 seven segment displays will indeed require a lot of space/wires on the breadboard. It may be easier to solder wires directly on the displays instead: instructables.com/files/deriv/F6I/LTSP/F4WY1KXJ/… \$\endgroup\$
    – JonathanD
    May 30, 2010 at 11:18

3 Answers 3


Take a look at my charlie-plexing schematic at http://wiblocks.com/FAQ/faq-charlie-plex.html

Make each row connection the common pin of the seven segment readout. Make each column the individual pin connection. For 28 segments you need six pins. If you use eight pins instead of six you may find it easier to program. With eight pins I would do four rows and seven columns.

(* jcl *)


  • \$\begingroup\$ The link won't work anymore. You get redirected to crappy websites. Perhaps it was hacked. \$\endgroup\$
    – Semo
    Mar 21, 2019 at 10:09
  • \$\begingroup\$ Perfekt. Thanks for updating. \$\endgroup\$
    – Semo
    Mar 25, 2019 at 11:23

I'm only a beginner at all of this, so take this with a grain of salt, but I'd have a totally different approach.

I'd use a 7447 decoder instead. This would use 7 pins (4 for the output, and 3 to select the display), but it would be much simpler than having to work out the combinations to charlieplex and would give a brighter output too.

  • \$\begingroup\$ Why would I use a 7447? It uses 7 pins to drive one display. \$\endgroup\$
    – Rick_2047
    May 30, 2010 at 6:17
  • \$\begingroup\$ A 7447 uses 4 pins to convert from binary to the 7 segments. Then all you need to do is to enable the correct display to display it. \$\endgroup\$
    – gorilla
    May 30, 2010 at 10:44

The Wikipedia article has simple examples on how to wire charlieplexed LEDs.

There are also a lot of instructables related to charlieplexing. This particular instructable explains how to wire 7-segment displays (with additional transistors though).

This page also explains how to wire 7-segment displays and contains pseudo code on how to drive them. The main difficulty of charlieplexing is to use flickering so that you can switch on arbitrary combinations of segments.


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.