Tutorial on Setting up Bi-Color Common Anode LED Matrix (pref with Max7219 ICs)


I got myself a Bi-Color (Red and Green) Common Anode LED Matrix off eBay.

I've been trying to find a tutorial which shows me how to set up one of these Bi-Color Matrix's.

I've actually found some information showing how one of these LED Matrix's can be set up using the following:

  • Arduino Uno
  • 8 by 8 LED array (two colour)
  • 16 100 Ohm resistors
  • 4017 decade counter
  • 8 2N7000

However, the tutorial doesn't actually state whether the LED Matrix should be Common Cathode or Common Anode. So it may not actually work.

I started off playing around with Seven Segment Displays using shift registers. I had 6 Seven Segment Displays which meant 6 shift registers and 40 resistors. And the fear (I got over it) of maxing out the available amps on my USB port.

Then I discovered the Max7219 chip. And I've become a huge fan.

In one swoop, I immediately substituted 6 shift registers and 40 resistors with one Max7219 chip and one resistor. And in the same swoop, because of the Max chips multiplexing capabilities, I no longer needed to worry about having enough amps to manage all of the LED segments that may be lit.

So, whilst I do have this tutorial to try and get my bi-color LED Matrix going, I would love to be able to find a tutorial which shows me how I can get it running using the Max 7219 chip. Well, two chips actually.

Online I've seen and heard about people getting a bi-color LED Matrix running with two Max 7219 chips. However, I haven't come across any tutorials which gives a newbie such as myself a simple step by step explanation of how to get it running.

Come to think of it, I think I read somewhere that the Max7219 chip can only handle Common Cathode LED Matrix's. So what I'm asking for may not even be possible. I'm afraid I ordered this matrix before I even knew that Matrix's came in Common Cathode and Common Anode varieties.

I would be eternally grateful if someone can direct me to a tutorial to set up this Bi-Color display, preferably using the Max 7219 chip. ANd also if someone can tell me how I can (if this can be done) "convert" my Common Anode LED Matrix to work in examples where a Common Cathode LED Matrix is being used. Like I said, I'm a newbie. :slight_smile:

Thanks in advance



Come to think of it, I think I read somewhere that the Max7219 chip can only handle Common Cathode LED Matrix's.

That is a tricky point. The trick to using two MAX7219s to control a bi-colour LED is based on enabling each chip alternately for 100 ms or so each. The MAX7219 is not specified to do this at all, as when disabled, it actually pulls the digit outputs HIGH and the segment outputs LOW so the alternate chip is fighting against them to take control.

The MAX7221 is the correct chip for this application, but it would seem the MAX7219 does not generally mind being so abused however because the Segment Drive Sink Current is actually specified to be greater than the Digit Drive Source Current (according to page 2 of the datasheet), this conflict would have slightly greater significance with common Anode ("segment") bi-colour displays.

Of course, the terms "Common Cathode" and "Common Anode" are nonsensical when referring to single colour matrices.