Max 7219 Help Needed - Very Simple Matrix

I really need some help for a project I have related to the MAX7219 and the Arduino.

Here is my post:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1184340780/14#14

Thank you.

Hi justin. I think it is better to start your own thread instead of attaching your problem to someone else his thread and post a new message about it. But anyway, it has been a while since I did some things with the 7219. I can only give you 1 advice: connect at least 8 LED's. It might be that something is happening on a row that is not connected at the moment and you will never know about it. Another thing is to try use existing code. Massimo posted some example code, long time ago. It might be in the playground, otherwise you will have to search for it. Use the google search from the frontpage. The forum search doesn't always give all the results. This code works and got me started with the 7219.

Thank you for the suggestion, I was thinking that the topic was similar so I might be able to get some help related to the other post. I am going to duplicate the question here in hopes someone might be able to see the issue. Is there anything else I can provide to make this question more explicit?

I will try to create a larger matrix on my breadboard, but I have limited space so it might be difficult to do an 8x8 array.

Thanks again.

ORIGINAL POST

Hello. I’m having what seem like similar issues trying to get a very basic (1x3) matrix working.
I’m really stuck and hope someone can help as I have very little electronics experience.

What I would like is for the LEDs at row 1 and 3 to blink. Ultimately I am just trying to light the LED’s in sequence.
I have a much larger project in mind, but I need to get this basic example working first.

Here is a picture of my breadboard as I currently have it setup:

Here is my pin configuration on the MAX7219:

I was trying to follow the WIRING "hello_matrix"example: http://wiring.org.co/learning/examples/hello_matrix.html , but I’m running into the same problems as phineus in that my LED’s just seem to stay lit up.

I’m really lost as to where to go at this point. Any help would be greatly appreciated.

Oh, here is my source as I currently have it:

#include <binary.h>
#include <Sprite.h>

#include <Matrix.h>

Matrix myMatrix = Matrix(0, 2, 1); 

void setup() 
{ 
  myMatrix.setBrightness(7); 
} 

void loop() 
{ 
  myMatrix.clear(); // clear display 

  delay(1000); 

  // turn some pixels on 
  myMatrix.write(1, 2, HIGH); 
  myMatrix.write(1, 3, HIGH); 

  delay(1000); 
}

Well... I got a chance to download and try LedControl library by Eberhard Fahle found here :

http://www.wayoda.org/arduino/ledcontrol/index.html

and also on the playground page.

Unfortunately, I'm experiencing the same error as before where all three LED's stay lit up. The wiring between the Arduino and the 7219 is the same but I did change the pin-numbers to:

LedControl lc1=LedControl(12,11,10,1);

to better match the example.

I will do a detailed video tutorial if I can get this up and running. I really hope someone can help.

Thanks.

Hi Justinlevi,

here is a little sketch that lights up the three leds one after the other using the LedControl-Lib.

I have tested it with the hardware shown in the LedControl-doc. If this code doesn't work for you ,please check you wiring again.

#include "LedControl.h"

LedControl lc=LedControl(12,11,10,1);

unsigned long delaytime=1000;

void setup() {
   lc.shutdown(0,false);
   lc.setIntensity(0,15);
   lc.clearDisplay(0);
}


void loop() { 
  lc.clearDisplay(0);
  delay(delaytime);
  //light up led 0.0 (see ledcontrol doc)
  lc.setRow(0,0,128);
  delay(delaytime);
  //light up led 0.0 & 0.1 (see ledcontrol doc)
  lc.setRow(0,0,192);
  delay(delaytime);
  //light up led 0.0 & 0.1 & 0.2 (see ledcontrol doc)
  lc.setRow(0,0,224);
  delay(delaytime);
}

Eberhard

Dear Eberhard,

Thank you so much for your response.

I tried your sketch and sure enough it doesn't work for me still, so there must be something wrong with my wiring. I'm very new to working with the Arduino and electronics, so I'm really hoping you might be able to point me to where I have gone wrong? I tried setting up my breadboard exactly as it is on this page:

http://wiring.org.co/learning/examples/hello_matrix.html

The only difference is that I've swapped out the 8x8 matrix with my own 1X3 common cathode matrix.

I will try to attach a diagram along with pictures of how I have everything wired together currently in hopes you might be able to spot the issue.

Here is a diagram I put together of how I have everything wired:

Here are three closeup images of my breadboard as I have it setup. Sorry for the fuzziness as they were taken with my camera phone.

Thanks again for any help!

It's hard to tell for sure, but in the first picture it looks like the short power jumper is going to the same spot at the resistor. In the schematic it is one pin to the left of that. The way it is now it would be bypassing that resistor.

Hmm... the wiring looks ok. The only thing I don't have on my board is resistor r1 that ties down the LOAD-Pin to GND. Could you simply remove this resistor for a test. Can't damage anything.

Eberhard

It's hard to tell for sure, but in the first picture it looks like the short power jumper is going to the same spot at the resistor. In the schematic it is one pin to the left of that. The way it is now it would be bypassing that resistor.

Yes, now that you mention it, I only looked at the diagramm! Suspicious! Eberhard

Once again, thank you both soo much for your help.

Although I'm not entirely sure why this works, I moved the 5V power supply to the + rail on my breadboard and supplied pin 19 directly from that rail. At first I had all the resistors connected as before so that the I also had a 10K resistor going into pin 18 on the MAX7219 and then the r1 resistor that tied the load pin to the ground. As soon as I removed both of these resistors, each row started to light up correctly.

I'm not sure I understand why that didn't work? The datasheet says that pin 18 is the ISET pin and that I need to Connect to Vdd through a resisor to set the peak segment current. What does that mean? Could it be that the 8x8 matrix needs a different peak current than each individual LED?

I'm going to experiment some more, but any help in understanding what went wrong is greatly appreciated.

Also, it seems that I must have something backwards because when I call the setLed function that light turns off and not on. All the lights start out as on too. What could be causing that?