Sketch examples of scrolling text on 8x8 LED matrix w/ MAX72xx

dhenry:
You do have a buffer, in a[].

Ah I see, I was thinking of it as a font, i.e. something that's constant.

Anyway, I made a lot of progress, now my letter is scrolling seamlessly between 2 LED matrices and even wraps around! :smiley: I think I can adapt it to any number of LED matrices in the chain...

void letter_scroll(){
  // Define "A" Character columnwise orientation
  byte a[8]={B00000000,B01111111,B10001000,B10001000,B10001000,B10001000,B01111111,B00000000};
  int matrix_rows=8; // Specify number of LEDs in a row of the matrix 
  int screen_res=lc.getDeviceCount()*matrix_rows; // Define Screen resolution (lengh) by getting number of devices connected and rows in each matrix (i.e. 2x8=16)
  int row=0; // Var will only be used on first screen to do wrap around function
  for(int j=0;j<screen_res;j++){ // This will shift position of the row creating movement
     for(int i=0;i<8;i++) { // Render Character on Screen 1
       if (j>8){ //we beyond first screen
          if (j>matrix_rows){ // Time to wrap around
            row=j-screen_res; // Modify start position so it goesn't go beyond screen
            lc.setRow(0,i+row,a[i]); // Render Letter
          }
        }
        else{ // We are on the 1st screen
             lc.setRow(0,i+j,a[i]); // Render Letter
         }
     }
     for(int i=0;i<8;i++) { // Render Character on second screen
        if (j>0){ // Are we scrolling off the prev. screen?
          lc.setRow(1,i+j-8,a[i]);  // Render Character on second screen
        }
     }
    delay(100); // speed of animation
    } 
}

LEDScrollTest1.ino (2.32 KB)