Direct driving 7 segment displays

Hi everyone,

I ws just hoping to get some thoughts on direct driving a set of 7 segment displays before I started overloading outputs and so on.

By direct driving I mean using no shift registers, MAX chips or anything else, just a few resistors as I'm trying to keep this really minimal.

What I was planning was to use a resistor per common cathode and only have one anode "live" at any one point, therefore limiting the amount of current the Arduino is sinking (and drawing) at that point.

I'll of course have to work through the segments pretty quickly to keep flicker down to a minimum and I suppose this could make the segments look a little dull but that's OK for my requirements.

Have I got the general principle right though?

Cheers in advance,


Yes this will work - It makes use of 'Persistence of Vision' or POV so that use slow image processors (humans) will see multiples lit at one time.

Just make you main software loop with no delay() function calls to cycle through really fast. You can also bump down the resistor values a touch because you will not be running at 100% duty. That will give you some of your brightness back.

If you get to the point where external hardware makes more sense to you, check out this guy:

Thanks BRuTuS.

I’ve got the display working and it’s looking good (although a little dim, but good enough!)

I’ve used the MAX7219 to drive displays previously but wanted to keep the amount of chips (and other components) down on this project for size reasons. The chip you mention certainly looks interesting though, maybe for the next one.