Hello, I apologize if this has already been covered or if this is too simple of a question, but I am fairly new to arduino. I am generating a series of byte arrays to send to an 8X8 LED matrix, but unfortunately this consumes a significant amount of memory. I have attempted to save the byte arrays to the flash (Using PROGMEM) as there is a large amount of open space there, but I am not getting very far. Any help would be greatly appreciated.
#include <LedControl.h>
#include <avr/pgmspace.h>
int DIN = 12;
int CS = 11;
int CLK = 10;
int time = 50;
byte Aone[8]= {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Atwo[8]= {0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Athree[8]= {0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Afour[8]= {0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Afive[8]= {0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Asix[8]= {0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Aseven[8]= {0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Aeight[8]= {0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte Anine[8]= {0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00};
byte Aten[8]= {0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00};
byte Aeleven[8]= {0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00};
byte Atwelve[8]= {0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00};
byte Athirteen[8]= {0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,0x00};
byte Afourteen[8]= {0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00};
byte Afifteen[8]= {0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00};
byte Asixteen[8]= {0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00};
byte Aseventeen[8]= {0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00};
byte Aeighteen[8]= {0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00};
byte Anineteen[8]= {0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00};
byte Atwenty[8]= {0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00};
byte Atwentyone[8]= {0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00};
byte Atwentytwo[8]= {0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00};
byte Atwentythree[8]= {0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00};
byte Atwentyfour[8]= {0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00};
byte Atwentyfive[8]= {0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00};
byte Atwentysix[8]= {0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00};
byte Atwentyseven[8]= {0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00};
byte Atwentyeight[8]= {0xFF,0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00};
byte Atwentynine[8]= {0xFF,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00};
byte Athirty[8]= {0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00};
byte Athirtyone[8]= {0xFF,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x00};
byte Athirtytwo[8]= {0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00};
byte Athirtythree[8]= {0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00};
byte Athirtyfour[8]= {0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00};
byte Athirtyfive[8]= {0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00};
byte Athirtysix[8]= {0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00};
byte Athirtyseven[8]= {0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00};
byte Athirtyeight[8]= {0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00};
byte Athirtynine[8]= {0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x00};
byte Afourty[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00};
byte Afourtyone[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00};
byte Afourtytwo[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x00,0x00};
byte Afourtythree[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00};
byte Afourtyfour[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,0x00};
byte Afourtyfive[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,0x00};
byte Afourtysix[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00};
byte Afourtyseven[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0x00};
byte Afourtyeight[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00};
byte Afourtynine[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00};
byte Afifty[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00};
byte Afiftyone[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00};
byte Afiftytwo[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00};
byte Afiftythree[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00};
byte Afiftyfour[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00};
byte Afiftyfive[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00};
byte Afiftysix[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00};
byte Afiftyseven[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01};
byte Afiftyeight[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03};
byte Afiftynine[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07};
byte Asixty[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F};
byte Asixtyone[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F};
byte Asixtytwo[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F};
byte Asixtythree[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F};
byte Asixtyfour[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
LedControl lc=LedControl(DIN,CLK,CS,0);
void setup(){
lc.shutdown(0,false); //The MAX72XX is in power-saving mode on startup
lc.setIntensity(0,15); // Set the brightness to maximum value
lc.clearDisplay(0); // and clear the display
}
void loop(){
printByte(Aone);
delay(time);
printByte(Atwo);
delay(time);
printByte(Athree);
delay(time);
printByte(Afour);
delay(time);
printByte(Afive);
delay(time);
printByte(Asix);
delay(time);
printByte(Aseven);
delay(time);
printByte(Aeight);
delay(time);
printByte(Anine);
delay(time);
printByte(Aten);
delay(time);
printByte(Aeleven);
delay(time);
printByte(Atwelve);
delay(time);
printByte(Athirteen);
delay(time);
printByte(Afourteen);
delay(time);
printByte(Afifteen);
delay(time);
printByte(Asixteen);
delay(time);
printByte(Aseventeen);
delay(time);
printByte(Aeighteen);
delay(time);
printByte(Anineteen);
delay(time);
printByte(Atwenty);
delay(time);
printByte(Atwentyone);
delay(time);
printByte(Atwentytwo);
delay(time);
printByte(Atwentythree);
delay(time);
printByte(Atwentyfour);
delay(time);
printByte(Atwentyfive);
delay(time);
printByte(Atwentysix);
delay(time);
printByte(Atwentyseven);
delay(time);
printByte(Atwentyeight);
delay(time);
printByte(Atwentynine);
delay(time);
printByte(Athirty);
delay(time);
printByte(Athirtyone);
delay(time);
printByte(Athirtytwo);
delay(time);
printByte(Athirtythree);
delay(time);
printByte(Athirtyfour);
delay(time);
printByte(Athirtyfive);
delay(time);
printByte(Athirtysix);
delay(time);
printByte(Athirtyseven);
delay(time);
printByte(Athirtyeight);
delay(time);
printByte(Athirtynine);
delay(time);
printByte(Afourty);
delay(time);
printByte(Afourtyone);
delay(time);
printByte(Afourtytwo);
delay(time);
printByte(Afourtythree);
delay(time);
printByte(Afourtyfour);
delay(time);
printByte(Afourtyfive);
delay(time);
printByte(Afourtysix);
delay(time);
printByte(Afourtyseven);
delay(time);
printByte(Afourtyeight);
delay(time);
printByte(Afourtynine);
delay(time);
printByte(Afifty);
delay(time);
printByte(Afiftyone);
delay(time);
printByte(Afiftytwo);
delay(time);
printByte(Afiftythree);
delay(time);
printByte(Afiftyfour);
delay(time);
printByte(Afiftyfive);
delay(time);
printByte(Afiftysix);
delay(time);
printByte(Afiftyseven);
delay(time);
printByte(Afiftyeight);
delay(time);
printByte(Afiftynine);
delay(time);
printByte(Asixty);
delay(time);
printByte(Asixtyone);
delay(time);
printByte(Asixtytwo);
delay(time);
printByte(Asixtythree);
delay(time);
printByte(Asixtyfour);
delay(time);
}
void printByte(byte character [])
{
int i = 0;
for(i=0;i<8;i++)
{
lc.setRow(0,i,character[i]);
}
}
Thanks!