NAzT
11/20/2013 - 6:33 PM

ddd

// Control an 8x8 LED display with 2 x 74HC595 shift registers
// Using only 3 pins from the Arduino 
// shift register = 8 pin

#include <string.h>

#define DEVICES 6
#define SHIFT_REGISTER 8
#define ALLFPIN SHIFT_REGISTER * DEVICES

// while condition variable
int whileVar = 0;
 
//Pin connected to Pin 12 of 74HC595 (Latch)
int latchPin = 8;
 
//Pin connected to Pin 11 of 74HC595 (Clock)
int clockPin = 12;
 
//Pin connected to Pin 14 of 74HC595 (Data)
int dataPin = 11;
 
uint8_t led[ALLFPIN];
uint8_t letters[672];
uint8_t currentdisplay[ALLFPIN];
 
long counter1 = 0;
 
// Current Character in the charMessage Array
int charMessageCurrent = 0;
 
// Current line in Letter
int lineLetter = 672;
 
//currentChar is the current character in the charMessage that is being chekced
char currentChar =32;
 
// Used to store the message instead of displayMessage
char charMessage[400];
 
// scrollMessage is array holding the message that will be displayed
uint8_t scrollMessage[480];
 
// Serial read Byte
int incomingByte = 0;
 
void setup() {
   
  Serial.begin(9600); 
    
  // Seed Random Generator with noise from analog pin 0  
  randomSeed(analogRead(0));
    
  //set pins to output
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
   
  // Symbol [ ] space
  letters[0] =  B00000000;
  letters[1] =  B00000000;
  letters[2] =  B00000000;
  letters[3] =  B00000000;
  letters[4] =  B00000000;
  letters[5] =  B00000000;
  letters[6] =  B00000000;
  letters[7] =  B00000000;
   
  // Symbol !
  letters[8]  =  B00000000;
  letters[9]  =  B00000000;
  letters[10] =  B00000000;
  letters[11] =  B00000000;
  letters[12] =  B11110011;
  letters[13] =  B00000000;
  letters[14] =  B00000000;
  letters[15] =  B00000000;
   
  // Symbol "
  letters[16] =  B00000000;
  letters[17] =  B00000000;
  letters[18] =  B00000000;
  letters[19] =  B11100000;
  letters[20] =  B00000000;
  letters[21] =  B11100000;
  letters[22] =  B00000000;
  letters[23] =  B00000000;
   
  // Symbol #
  letters[24] =  B00000000;
  letters[25] =  B00100100;
  letters[26] =  B11111111;
  letters[27] =  B00100100;
  letters[28] =  B00100100;
  letters[29] =  B00100100;
  letters[30] =  B11111111;
  letters[31] =  B00100100;
   
  // Symbol $
  letters[32] =  B00000000;
  letters[33] =  B01001110;
  letters[34] =  B10010001;
  letters[35] =  B10010001;
  letters[36] =  B11111111;
  letters[37] =  B10010001;
  letters[38] =  B10010001;
  letters[39] =  B01100110;
   
  // Symbol %
  letters[40] =  B00000000;
  letters[41] =  B10000111;
  letters[42] =  B01000101;
  letters[43] =  B00110111;
  letters[44] =  B00011000;
  letters[45] =  B11100100;
  letters[46] =  B10000010;
  letters[47] =  B11100001;
   
  // Symbol &
  letters[48] =  B00000000;
  letters[49] =  B01100000;
  letters[50] =  B10010101;
  letters[51] =  B10010011;
  letters[52] =  B10010101;
  letters[53] =  B10011001;
  letters[54] =  B01011001;
  letters[55] =  B00111110;
   
  // Symbol '
  letters[56] =  B00000000;
  letters[57] =  B00000000;
  letters[58] =  B00000000;
  letters[59] =  B11100000;
  letters[60] =  B00000000;
  letters[61] =  B00000000;
  letters[62] =  B00000000;
  letters[63] =  B00000000;
   
  // Symbol (
  letters[64] =  B00000000;
  letters[65] =  B00000000;
  letters[66] =  B10000001;
  letters[67] =  B01000010;
  letters[68] =  B00100100;
  letters[69] =  B00011000;
  letters[70] =  B00000000;
  letters[71] =  B00000000;
   
  // Symbol )
  letters[72] =  B00000000;
  letters[73] =  B00000000;
  letters[74] =  B00011000;
  letters[75] =  B00100100;
  letters[76] =  B01000010;
  letters[77] =  B10000001;
  letters[78] =  B00000000;
  letters[79] =  B00000000;
   
  // Symbol *
  letters[80] =  B00000000;
  letters[81] =  B10010010;
  letters[82] =  B01010100;
  letters[83] =  B00111000;
  letters[84] =  B11111111;
  letters[85] =  B00111000;
  letters[86] =  B01010100;
  letters[87] =  B10010010;
   
  // Symbol +
  letters[88] =  B00000000;
  letters[89] =  B00010000;
  letters[90] =  B00010000;
  letters[91] =  B00010000;
  letters[92] =  B11111111;
  letters[93] =  B00010000;
  letters[94] =  B00010000;
  letters[95] =  B00010000;
   
  // Symbol ,
  letters[96]  =  B00000000;
  letters[97]  =  B00000000;
  letters[98]  =  B00000000;
  letters[99]  =  B00000110;
  letters[100] =  B00000001;
  letters[101] =  B00000000;
  letters[102] =  B00000000;
  letters[103] =  B00000000;
   
  // Symbol -
  letters[104] =  B00000000;
  letters[105] =  B00000000;
  letters[106] =  B00000000;
  letters[107] =  B00010000;
  letters[108] =  B00010000;
  letters[109] =  B00010000;
  letters[110] =  B00000000;
  letters[111] =  B00000000;
   
  // Symbol .
  letters[112] =  B00000000;
  letters[113] =  B00000000;
  letters[114] =  B00000000;
  letters[115] =  B00000011;
  letters[116] =  B00000011;
  letters[117] =  B00000000;
  letters[118] =  B00000000;
  letters[119] =  B00000000;
   
  // Symbol /
  letters[120] =  B00000000;
  letters[121] =  B10000000;
  letters[122] =  B01000000;
  letters[123] =  B00100000;
  letters[123] =  B00011000;
  letters[125] =  B00000100;
  letters[126] =  B00000010;
  letters[127] =  B00000001;
   
  // Number 0 - zero
  letters[128] =  B00000000;
  letters[129] =  B00111100;
  letters[130] =  B01000010;
  letters[131] =  B10100001;
  letters[132] =  B10010001;
  letters[133] =  B10001001;
  letters[134] =  B01000010;
  letters[135] =  B00111100;
   
  // Number 1
  letters[136] =  B00000000;
  letters[137] =  B00000000;
  letters[138] =  B00000001;
  letters[139] =  B11111111;
  letters[140] =  B01000001;
  letters[141] =  B00100001;
  letters[142] =  B00000000;
  letters[143] =  B00000000;
   
  // Number 2
  letters[144] =  B00000000;
  letters[145] =  B01100001;
  letters[146] =  B10010001;
  letters[147] =  B10001001;
  letters[148] =  B10001001;
  letters[149] =  B10000101;
  letters[150] =  B10000011;
  letters[141] =  B01100001;
   
  // Number 3
  letters[152] =  B00000000;
  letters[153] =  B01111110;
  letters[154] =  B10011001;
  letters[155] =  B10011001;
  letters[156] =  B10011001;
  letters[157] =  B10000001;
  letters[158] =  B10000001;
  letters[159] =  B01000110;
   
  // Number 4
  letters[160] =  B00000000;
  letters[161] =  B00000100;
  letters[162] =  B11111111;
  letters[163] =  B01000100;
  letters[164] =  B00100100;
  letters[165] =  B00010100;
  letters[166] =  B00001100;
  letters[167] =  B00000100;
   
  // Number 5
  letters[168] =  B00000000;
  letters[169] =  B10001110;
  letters[170] =  B10010001;
  letters[171] =  B10010001;
  letters[172] =  B10010001;
  letters[173] =  B10010001;
  letters[174] =  B10010001;
  letters[175] =  B11100010;
   
  // Number 6
  letters[176] =  B00000000;
  letters[177] =  B01001110;
  letters[178] =  B10010001;
  letters[179] =  B10010001;
  letters[180] =  B10010001;
  letters[181] =  B10010001;
  letters[182] =  B10010001;
  letters[183] =  B01111110;
   
  // Number 7
  letters[184] =  B00000000;
  letters[185] =  B11100000;
  letters[186] =  B10010000;
  letters[187] =  B10001000;
  letters[188] =  B10000111;
  letters[189] =  B00000000;
  letters[190] =  B00000000;
  letters[191] =  B00000000;
   
  // Number 8
  letters[192] =  B00000000;
  letters[193] =  B01100110;
  letters[194] =  B10011001;
  letters[195] =  B10011001;
  letters[196] =  B10011001;
  letters[197] =  B10011001;
  letters[198] =  B10011001;
  letters[199] =  B01100110;
   
  // Number 9
  letters[200] =  B00000000;
  letters[201] =  B01111110;
  letters[202] =  B10001001;
  letters[203] =  B10001001;
  letters[204] =  B10001001;
  letters[205] =  B10001001;
  letters[206] =  B10001001;
  letters[207] =  B01110010;
   
  // Symbol :
  letters[208] =  B00000000;
  letters[209] =  B00000000;
  letters[210] =  B00000000;
  letters[211] =  B00000000;
  letters[212] =  B01100110;
  letters[213] =  B00000000;
  letters[214] =  B00000000;
  letters[215] =  B00000000;
   
  // Symbol ;
  letters[216] =  B00000000;
  letters[217] =  B00000000;
  letters[218] =  B00000000;
  letters[219] =  B00000000;
  letters[220] =  B01100110;
  letters[221] =  B00000001;
  letters[222] =  B00000000;
  letters[223] =  B00000000;
   
  // Symbol <
  letters[224] =  B00000000;
  letters[225] =  B00000000;
  letters[226] =  B00000000;
  letters[227] =  B10000010;
  letters[228] =  B01000100;
  letters[229] =  B00101000;
  letters[230] =  B00010000;
  letters[231] =  B00000000;
   
  // Symbol =
  letters[232] =  B00000000;
  letters[233] =  B00000000;
  letters[234] =  B00000000;
  letters[235] =  B00100100;
  letters[236] =  B00100100;
  letters[237] =  B00100100;
  letters[238] =  B00100100;
  letters[239] =  B00000000;
   
  // Symbol >
  letters[240] =  B00000000;
  letters[241] =  B00000000;
  letters[242] =  B00010000;
  letters[243] =  B00101000;
  letters[244] =  B01000100;
  letters[245] =  B10000010;
  letters[246] =  B00000000;
  letters[247] =  B00000000;
   
  // Symbol ?
  letters[248] =  B00000000;
  letters[249] =  B00000000;
  letters[250] =  B01100000;
  letters[251] =  B10010000;
  letters[252] =  B10001101;
  letters[253] =  B10000000;
  letters[254] =  B01100000;
  letters[255] =  B00000000;
   
  // Symbol @
  letters[256] =  B00000000;
  letters[257] =  B01111000;
  letters[258] =  B10100101;
  letters[259] =  B10100101;
  letters[260] =  B10100101;
  letters[261] =  B10011001;
  letters[262] =  B10000001;
  letters[263] =  B01011110;
   
  // Letter A
  letters[264] = B00000000;
  letters[265] = B00111111;
  letters[266] = B01001000;
  letters[267] = B10001000;
  letters[268] = B10001000;
  letters[269] = B10001000;
  letters[270] = B01001000;
  letters[271] = B00111111;
   
  // Letter B
  letters[272]  = B00000000;
  letters[273]  = B01110110;
  letters[274] = B10001001;
  letters[275] = B10001001;
  letters[276] = B10001001;
  letters[277] = B10001001;
  letters[278] = B10001001;
  letters[279] = B11111111;
   
  // Letter C
  letters[280] = B00000000;
  letters[281] = B00000000;
  letters[282] = B01000010;
  letters[283] = B10000001;
  letters[284] = B10000001;
  letters[285] = B10000001;
  letters[286] = B01000010;
  letters[287] = B00111100;
   
  // Letter D
  letters[288] = B00000000;
  letters[289] = B00111100;
  letters[290] = B01000010;
  letters[291] = B10000001;
  letters[292] = B10000001;
  letters[293] = B10000001;
  letters[294] = B10000001;
  letters[295] = B11111111;
   
  // Letter E
  letters[296] = B00000000;
  letters[297] = B10000001;
  letters[298] = B10000001;
  letters[299] = B10010001;
  letters[300] = B10010001;
  letters[301] = B10010001;
  letters[302] = B10010001;
  letters[303] = B11111111;
   
   
  // Letter F
  letters[304] = B00000000;
  letters[305] = B10000000;
  letters[306] = B10000000;
  letters[307] = B10010000;
  letters[308] = B10010000;
  letters[309] = B10010000;
  letters[310] = B10010000;
  letters[311] = B11111111;
   
  // Letter G
  letters[312] = B00000000;
  letters[313] = B00101100;
  letters[314] = B01001010;
  letters[315] = B10001001;
  letters[316] = B10000001;
  letters[317] = B10000001;
  letters[318] = B01000010;
  letters[319] = B00111100;
   
  // Letter H
  letters[320] = B00000000;
  letters[321] = B11111111;
  letters[322] = B00001000;
  letters[323] = B00001000;
  letters[324] = B00001000;
  letters[325] = B00001000;
  letters[326] = B00001000;
  letters[327] = B11111111;
   
  // Letter I
  letters[328] = B00000000;
  letters[329] = B00000000;
  letters[330] = B10000001;
  letters[331] = B10000001;
  letters[332] = B11111111;
  letters[333] = B10000001;
  letters[334] = B10000001;
  letters[335] = B00000000;
   
  // Letter J
  letters[336] = B00000000;
  letters[337] = B10000000;
  letters[338] = B10000000;
  letters[339] = B11111100;
  letters[340] = B10000010;
  letters[341] = B10000001;
  letters[342] = B10000001;
  letters[343] = B10000010;
   
  // Letter K
  letters[344] = B00000000;
  letters[345] = B10000001;
  letters[346] = B01000010;
  letters[347] = B00100100;
  letters[348] = B00011000;
  letters[349] = B00001000;
  letters[350] = B00000100;
  letters[351] = B11111111;
   
  // Letter L
  letters[352] = B00000000;
  letters[353] = B00000000;
  letters[354] = B00000001;
  letters[355] = B00000001;
  letters[356] = B00000001;
  letters[357] = B00000001;
  letters[358] = B00000001;
  letters[359] = B11111111;
   
  // Letter M
  letters[360] =  B00000000;
  letters[361] =  B01111111;
  letters[362] =  B10000000;
  letters[363] =  B10000000;
  letters[364] = B01110000;
  letters[365] = B10000000;
  letters[366] = B10000000;
  letters[367] = B01111111;
   
  // Letter N
  letters[368] =  B00000000;
  letters[369] =  B11111111;
  letters[370] =  B00000010;
  letters[371] =  B00000100;
  letters[372] =  B00011000;
  letters[373] =  B00100000;
  letters[374] =  B01000000;
  letters[375] =  B11111111;
   
  // Letter 0
  letters[376] =  B00000000;
  letters[377] =  B00111100;
  letters[378] =  B01000010;
  letters[379] =  B10000001;
  letters[380] =  B10000001;
  letters[381] =  B10000001;
  letters[382] =  B01000010;
  letters[383] =  B00111100;
   
  // Letter P
  letters[384] =  B00000000;
  letters[385] =  B00110000;
  letters[386] =  B01001000;
  letters[387] =  B10000100;
  letters[388] =  B10000100;
  letters[389] =  B10000100;
  letters[390] =  B10000100;
  letters[391] =  B11111111;
   
  // Letter Q
  letters[392] =  B00000000;
  letters[393] =  B00111101;
  letters[394] =  B01000010;
  letters[395] =  B10000101;
  letters[396] =  B10001001;
  letters[397] =  B10000001;
  letters[398] =  B01000010;
  letters[399] =  B00111100;
   
  // Letter R
  letters[400] =  B00000000;
  letters[401] =  B00110001;
  letters[402] =  B01001010;
  letters[403] =  B10000100;
  letters[404] =  B10000100;
  letters[405] =  B10000100;
  letters[406] =  B10000100;
  letters[407] =  B11111111;
   
  // Letter S
  letters[408] =  B00000000;
  letters[409] =  B01001110;
  letters[410] =  B10010001;
  letters[411] =  B10010001;
  letters[412] =  B10010001;
  letters[413] =  B10010001;
  letters[414] =  B10010001;
  letters[415] =  B01100110;
   
  // Letter T
  letters[416] =  B00000000;
  letters[417] =  B10000000;
  letters[418] =  B10000000;
  letters[419] =  B10000000;
  letters[420] =  B11111111;
  letters[421] =  B10000000;
  letters[422] =  B10000000;
  letters[423] =  B10000000;
   
  // Letter U
  letters[424] =  B00000000;
  letters[425] =  B11111100;
  letters[426] =  B00000010;
  letters[427] =  B00000001;
  letters[428] =  B00000001;
  letters[429] =  B00000001;
  letters[430] =  B00000010;
  letters[431] =  B11111100;
   
  // Letter V
  letters[432] =  B00000000;
  letters[433] =  B11111000;
  letters[434] =  B00000100;
  letters[435] =  B00000010;
  letters[436] =  B00000001;
  letters[437] =  B00000010;
  letters[438] =  B00000100;
  letters[439] =  B11111000;
   
  // Letter W
  letters[440] =  B00000000;
  letters[441] =  B11111110;
  letters[442] =  B00000001;
  letters[443] =  B00000001;
  letters[444] =  B00001110;
  letters[445] =  B00000001;
  letters[446] =  B00000001;
  letters[447] =  B11111110;
   
  // Letter X
  letters[448] =  B00000000;
  letters[449] =  B10000001;
  letters[450] =  B01000010;
  letters[451] =  B00100100;
  letters[452] =  B00011000;
  letters[453] =  B00100100;
  letters[454] =  B01000010;
  letters[455] =  B10000001;
   
  // Letter Y
  letters[456] =  B00000000;
  letters[457] =  B10000000;
  letters[458] =  B01000000;
  letters[459] =  B00100000;
  letters[460] =  B00011111;
  letters[461] =  B00100000;
  letters[462] =  B01000000;
  letters[463] =  B10000000;
   
  // Letter Z
  letters[464] =  B00000000;
  letters[465] =  B10000001;
  letters[466] =  B11000001;
  letters[467] =  B10100001;
  letters[468] =  B10010001;
  letters[469] =  B10001001;
  letters[470] =  B10000101;
  letters[471] =  B10000011;
   
  // Symbol !
  letters[472] =  B00000000;
  letters[473] =  B00000000;
  letters[474] =  B00000000;
  letters[475] =  B00000000;
  letters[476] =  B11110011;
  letters[477] =  B00000000;
  letters[478] =  B00000000;
  letters[479] =  B00000000;
   
  // Symbol "
  letters[480] =  B00000000;
  letters[481] =  B00000000;
  letters[482] =  B00000000;
  letters[483] =  B11100000;
  letters[484] =  B00000000;
  letters[485] =  B11100000;
  letters[486] =  B00000000;
  letters[487] =  B00000000;
   
  // Symbol #
  letters[488] =  B00000000;
  letters[489] =  B00100100;
  letters[490] =  B11111111;
  letters[491] =  B00100100;
  letters[492] =  B00100100;
  letters[493] =  B00100100;
  letters[494] =  B11111111;
  letters[495] =  B00100100;
   
  // Symbol $
  letters[496] =  B00000000;
  letters[497] =  B01001110;
  letters[498] =  B10010001;
  letters[499] =  B10010001;
  letters[500] =  B11111111;
  letters[501] =  B10010001;
  letters[502] =  B10010001;
  letters[503] =  B01100110;
   
  // Symbol %
  letters[504] =  B00000000;
  letters[505] =  B00000000;
  letters[506] =  B01000110;
  letters[507] =  B00110000;
  letters[508] =  B00011000;
  letters[509] =  B00000100;
  letters[510] =  B01100010;
  letters[511] =  B00000001;
   
  // Symbol &
  letters[512] =  B00000000;
  letters[513] =  B00000000;
  letters[514] =  B00000101;
  letters[515] =  B01000010;
  letters[516] =  B10100101;
  letters[517] =  B10101001;
  letters[518] =  B01010001;
  letters[519] =  B00101110;
   
  // Symbol '
  letters[520] =  B00000000;
  letters[521] =  B00000000;
  letters[522] =  B00000000;
  letters[523] =  B11100000;
  letters[524] =  B00000000;
  letters[525] =  B00000000;
  letters[526] =  B00000000;
  letters[527] =  B00000000;
   
  // Symbol (
  letters[528] =  B00000000;
  letters[529] =  B00000000;
  letters[530] =  B10000001;
  letters[531] =  B01000010;
  letters[532] =  B00100100;
  letters[533] =  B00011000;
  letters[534] =  B00000000;
  letters[535] =  B00000000;
   
  // Symbol )
  letters[536] =  B00000000;
  letters[537] =  B00000000;
  letters[538] =  B00011000;
  letters[539] =  B00100100;
  letters[540] =  B01000010;
  letters[541] =  B10000001;
  letters[542] =  B00000000;
  letters[543] =  B00000000;
   
  // Symbol *
  letters[544] =  B00000000;
  letters[545] =  B10010010;
  letters[546] =  B01010100;
  letters[547] =  B00111000;
  letters[548] =  B11111111;
  letters[549] =  B00111000;
  letters[550] =  B01010100;
  letters[551] =  B10010010;
   
  // Symbol +
  letters[552] =  B00000000;
  letters[553] =  B00010000;
  letters[554] =  B00010000;
  letters[555] =  B00010000;
  letters[556] =  B11111111;
  letters[557] =  B00010000;
  letters[558] =  B00010000;
  letters[559] =  B00010000;
   
  // Symbol '
  letters[560] =  B00000000;
  letters[561] =  B00000000;
  letters[562] =  B00000000;
  letters[563] =  B11000000;
  letters[564] =  B00100000;
  letters[565] =  B00000000;
  letters[566] =  B00000000;
  letters[567] =  B00000000;
   
  // Symbol -
  letters[568] =  B00000000;
  letters[569] =  B00000000;
  letters[570] =  B00000000;
  letters[571] =  B00010000;
  letters[572] =  B00010000;
  letters[573] =  B00010000;
  letters[574] =  B00000000;
  letters[575] =  B00000000;
   
  // Symbol .
  letters[576] =  B00000000;
  letters[577] =  B00000000;
  letters[578] =  B00000000;
  letters[579] =  B00000011;
  letters[580] =  B00000011;
  letters[581] =  B00000000;
  letters[582] =  B00000000;
  letters[583] =  B00000000;
   
  // Symbol /
  letters[584] =  B00000000;
  letters[585] =  B10000000;
  letters[586] =  B01000000;
  letters[587] =  B00100000;
  letters[588] =  B00011000;
  letters[589] =  B00000100;
  letters[590] =  B00000010;
  letters[591] =  B00000001;
   
  // Number 0 - zero
  letters[592] =  B00000000;
  letters[593] =  B00111100;
  letters[594] =  B01000010;
  letters[595] =  B10100001;
  letters[596] =  B10010001;
  letters[597] =  B10001001;
  letters[598] =  B01000010;
  letters[599] =  B00111100;
   
  // Number 1
  letters[600] =  B00000000;
  letters[601] =  B00000000;
  letters[602] =  B00000001;
  letters[603] =  B11111111;
  letters[604] =  B01000001;
  letters[605] =  B00100001;
  letters[606] =  B00000000;
  letters[607] =  B00000000;
   
  // Number 2
  letters[608] =  B00000000;
  letters[609] =  B01100001;
  letters[610] =  B10010001;
  letters[611] =  B10001001;
  letters[612] =  B10001001;
  letters[613] =  B10000101;
  letters[614] =  B10000011;
  letters[615] =  B01100001;
   
  // Number 3
  letters[616] =  B00000000;
  letters[617] =  B01111110;
  letters[618] =  B10011001;
  letters[619] =  B10011001;
  letters[620] =  B10011001;
  letters[621] =  B10000001;
  letters[622] =  B10000001;
  letters[623] =  B01000110;
   
  // Number 4
  letters[624] =  B00000000;
  letters[625] =  B00000100;
  letters[626] =  B11111111;
  letters[627] =  B01000100;
  letters[628] =  B00100100;
  letters[629] =  B00010100;
  letters[630] =  B00001100;
  letters[631] =  B00000100;
   
  // Number 5
  letters[632] =  B00000000;
  letters[633] =  B10001110;
  letters[634] =  B10010001;
  letters[635] =  B10010001;
  letters[636] =  B10010001;
  letters[637] =  B10010001;
  letters[638] =  B10010001;
  letters[639] =  B11100010;
   
  // Number 6
  letters[640] =  B00000000;
  letters[641] =  B01001110;
  letters[642] =  B10010001;
  letters[643] =  B10010001;
  letters[644] =  B10010001;
  letters[645] =  B10010001;
  letters[646] =  B10010001;
  letters[647] =  B01111110;
   
  // Number 7
  letters[648] =  B00000000;
  letters[649] =  B11100000;
  letters[650] =  B10010000;
  letters[651] =  B10001000;
  letters[652] =  B10000111;
  letters[653] =  B00000000;
  letters[654] =  B00000000;
  letters[655] =  B00000000;
   
  // Number 8
  letters[656] =  B00000000;
  letters[657] =  B01100110;
  letters[658] =  B10011001;
  letters[659] =  B10011001;
  letters[660] =  B10011001;
  letters[661] =  B10011001;
  letters[662] =  B10011001;
  letters[663] =  B01100110;
   
  // Number 9
  letters[664] =  B00000000;
  letters[665] =  B01111110;
  letters[666] =  B10001001;
  letters[667] =  B10001001;
  letters[668] =  B10001001;
  letters[669] =  B10001001;
  letters[670] =  B10001001;
  letters[671] =  B01110010;
   
   
  for (int i = 0; i < ALLFPIN; i++){
    led[i] = letters[i];
    currentdisplay[i] = letters[i];
  }
}
 
void loop() {
   
  // Clear the screen before starting
  for (int i=448; i <456; i++) {
    led[i-448] = letters[i];
    currentdisplay[i-448] = letters[i];;
  }
   
  // Reseting variables 
  whileVar = 0;
  counter1 = 0;
  charMessageCurrent = 0;
  lineLetter = 672;
  currentChar = 32;
 
  int randNumber = random(0, 3);

  if (randNumber == 0) {
    strcpy(charMessage, "DIGITAL DISEASE DETECTION");
    charMessageCurrent = strlen(charMessage);
  }
  else if (randNumber == 2) {
    strcpy(charMessage, "FIND OUTBREAKS 	FASTER");    
    charMessageCurrent = strlen(charMessage);
  }
   
  // Making the first 8 Bytes - character a space
  for(int i =0; i <8; i++) {
    scrollMessage[i] = B00000000;
  }
  // Move counter1 to 8 so that the space stays in place
  counter1=8;  
    
  for (int i=0; i < charMessageCurrent; i++) {
      currentChar = charMessage[i];
   
      for (int x=7; x >= 0; x--) {
        scrollMessage[counter1] = letters[((currentChar-32)*8)+x];
        counter1++;
      }
  }
  // End Sorting out the message for scrolling
   
  // Clear the screen before starting
  for (int i=0; i < ALLFPIN ; i++) {
    led[i] = B00000000;
    currentdisplay[i] = B00000000;;
  }
   
  screenUpdate();
   
  // Reseting current1 to 0 as it is used for the delay in the code below
  counter1=0;
   
  // Resetting whileVar so it can be used again
  whileVar=0;
     
  while (whileVar == 0) {
    // counter1 used for delay in animation
    counter1++;

    // set the LEDs
    screenUpdate();

    // Loop for the action - counter1 used for the delay in scrolling 
    if (counter1 > 5) {
      counter1 = 0;
      lineLetter++;

      if (lineLetter >(((charMessageCurrent)*8)+7)) {
        lineLetter = 0;
      }
      // Do scrolling

      for (int i = ALLFPIN; i != 0; i--) {
        led[i] = currentdisplay[i-1];
      }

      led[0] = scrollMessage[lineLetter];

      for (int i = ALLFPIN - 1; i != -1; i--) {
        currentdisplay[i] = led[i];
      }
    }
  }
}
 
void screenUpdate() {
  uint8_t row = B00000001;
  for (byte k = 0; k < 16; k++) {
    // Open up the latch ready to receive data

    digitalWrite(latchPin, LOW);
    
    for (int i = (ALLFPIN / SHIFT_REGISTER) - 1; i != -1; i--) {
      shiftOut(dataPin, clockPin, LSBFIRST, ~row);   
      shiftOut(dataPin, clockPin, LSBFIRST, led[k + (i * 8)]);   
    }

    // Close the latch, sending the data in the registers out to the matrix
    digitalWrite(latchPin, HIGH);
    row = row << 1;
  }
}