Go Down

Topic: Scrolling message 8X8 LED array - Max7221? (Read 18263 times) previous topic - next topic

Riva


I've changed it to three (LedControl lc=LedControl(12,11,10,3); yet the buffer scrolls the characters to each 8x8 as if it were set to 1. but not across all three as one buffer. Is there a primer on setting up the buffers? Or the rotation, or the row / column choices and their respecrive speeds?

Hi Fran52,
What scroll code are you trying to use? I have some code posted in this thread that is written specifically for a pair of MAX7219 chips but it can be modified to drive up to three with a little modification and I did do a seven chip version somewhere.
Don't PM me for help as I will ignore it.

fran52

Attached

I think the buffer is one character sent to one 8x8 panel. Then again to shift into the second 8x8 panel. And finally a third time to shift into panel three.

Riva


I think the buffer is one character sent to one 8x8 panel. Then again to shift into the second 8x8 panel. And finally a third time to shift into panel three.

Though I have not tested this particular code version due to lack of components to do so it is just an extension of the code I wrote to drive 2x MAX7219 chips daisy chained together. I had asked someone on this site to test it for me and they said it worked fine for a 4x matrix display. If your having problems with it not scrolling correctly then maybe we need to check how you have the MAX7219 chips wired up. The code and led library expect the chips to be wired like this article http://playground.arduino.cc//Main/MAX72XXHardware pay particular attention to the example schematic with 2x chips wired together http://arduino.cc/playground/uploads/Main/MAX72XX_Schematic.jpg to see how the chips are daisy chained using DIN to DOUT and the first chip with DIN from arduino should be the one on the end (right) of the matrix and then they link back towards the left of the matrix.
The code you have is also hard coded to drive 4x displays (I must write a dynamic version sometime). Replace the printBufferLong with this to make it work for 3x displays
Code: [Select]
void printBufferLong(){
  for (int a=0;a<7;a++){                   
    unsigned long x = bufferLong [a*2];   
    y = (x>>24);                           
    lc.setRow(2,a,y);                       
    y = (x>>16);                           
    lc.setRow(1,a,y);                       
    y = (x>>8);                             
    lc.setRow(0,a,y);                       
  }
Don't PM me for help as I will ignore it.

Go Up