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!
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)