Eight 7-segment displays with external power supply


I am trying to build eight 7-segment displays controlled by an Arduino Uno. I need the displays to be these ones:


Datasheet: http://www.us.kingbright.com/images/catalog/SPEC/SA23-12EWA.pdf

It seems that the easiest solution is to use the MAX7221 component, that should do all the work:


This component usually should work well with an Arduino, but due to technical requirements with the 7-segment displays it seems it is going to be necessary to add an external power supply to turn on the segments.

It seems that it is needed also an extra configuration with the MAX7221 component using some resistences / transistors to handle more voltage and amperage, as explained here:


Could anyone explain to me, apart from the Arduino, the displays and the MAX7221 component, what additional setup whoud I need in order everything to work correctly and some advices with the external power supply and how to make sure that nothing gets fried? I dont have high electronics knowledge, so I will appreciate an explanation as less technical as possible.

Thanks in advance!

Oooh, you've picked a challenging one there!

Those displays cannot be driven directly by the MAX7219, so you would have to add the extra twenty-four transistors. Actually, it is fairly straightforward, you need a 12V supply anyway. If you follow the plans carefully, it should work.

It may in this case however, be simpler to use the arrangement developed in this post, reducing it to two ICs and eight transistors. This does however mean you must perform the multiplexing in software.

Thanks for your reply Paul__B!

I will take a look at the solution on the link in detail.

Can I ask why should be neccesary that many transistors with the first approach? And shouldnt a 9-10V supply be enough to work ok?

Thanks again!

Hi, an alternative idea to look into would be to use 2 x SAA1064 driver ics. These would keep your component count down (4 transistors and a couple of resistors & caps) and do the multiplexing for you. They use the i2c interface. I have used them in the past to drive 1.2" blue 7-seg displays with 9V supply, but they are good for up to 15V.


Can I ask why should be necessary that many transistors with the first approach? And shouldn’t a 9-10V supply be enough to work OK?

Well, the buffers have to switch a higher voltage, and the only configuration that can do that is a common-emitter (common-source) one, which inverts the logic. If you invert one “side” of the matrix connections, you must invert the other side also which turns out to be very convenient if you are using a common-anode display, as the MAX7219 is somewhat easier to program for common-cathode displays, and the logic inversion makes the common-anode display, match.

However, the MAX7219 still cannot directly switch the “high side” buffers, so it requires a third set of buffers, in common-base configuration; total: 24 transistors.

Unfortunately your datasheet does not (unless it is hidden somewhere) specify the voltage drop of the four-LED segments. OK, so they are red, so it is probably something like 7 to 8V and so 10V may suffice.

The thing is that 10V is not a standard supply voltage, but 12V is. Or do you propose to use batteries? If so, you would still be using either a 12V “gel-cell” or an 11V Li-Po battery.

I’ve drawn a schematic for you. Hopefully it will show how much simpler I think using 2 x SAA1064 will be.

Thank you both for your replies!

After studying your replies carefully I finally chose to change the displays for cathode ones instead of anode (the rest of the datasheet is identical) in order to simplify the circuit, and I used the MAX7221 component. Now I have the segments lighting ok, but I found a final problem... Its displaying the same value in all the displays. It seems that all DIG pins are driving current when only one should do it.

Actually i dont think the MAX7221 is the problem. I have the following implementation:

It could have something to do with the array of transistors that drives somehow some current in all J2-1 to J2-8 pins... I think i am almost there, but I could need help for this one...


Well now, there is a large gap in your description - where in fact the description or picture should be - so we really do not know where or what you are up to.

And your original design required higher voltages than the MAX7219 can natively provide, so I am puzzled as to what it is that you are doing, especially since the high voltage buffer circuits suggested for the MAX7219 are actually better suited to common anode displays and you are now saying you are using common cathode instead.

Sorry, I upload the image again:


You can find a complete description of what i am trying to achieve HERE. This is a tested project with basically the same specifications, but for some reason my displays are all showing the same value...