//Capital Alphabets #define CA {B01110000,B10001000,B10001000,B11111000,B10001000,B10001000} #define CB {B11110000,B10001000,B10001000,B11110000,B10001000,B11111000} #define CC {B11111000,B10000000,B10000000,B10000000,B10000000,B11111000} #define CD {B11110000,B10001000,B10001000,B10001000,B10001000,B11110000} #define CE {B11111000,B10000000,B10000000,B11110000,B10000000,B11111000} #define CF {B11111000,B10000000,B10000000,B11110000,B10000000,B10000000} #define CG {B01110000,B10001000,B10000000,B10011000,B10001000,B01110000} #define CH {B10001000,B10001000,B11111000,B10001000,B10001000,B10001000} #define CI {B11111000,B00100000,B00100000,B00100000,B00100000,B11111000} #define CJ {B00111000,B00010000,B00010000,B00010000,B10010000,B01100000} #define CM {B10001000,B11011000,B10101000,B10101000,B10001000,B10001000} #define CN {B10001000,B11001000,B10101000,B10101000,B10011000,B10001000} #define CL {B10000000,B10000000,B10000000,B10000000,B10000000,B11111000} #define CO {B01110000,B10001000,B10001000,B10001000,B10001000,B01110000} #define CP {B11110000,B10001000,B10001000,B11110000,B10000000,B10000000} #define CQ {B01110000,B10001000,B10101000,B10011000,B01111000,B00001000} #define CR {B11110000,B10001000,B10001000,B11110000,B10001000,B10001000} #define CS {B01110000,B10001000,B01100000,B00010000,B10001000,B01110000} #define CK {B10001000,B10010000,B11100000,B11100000,B10010000,B10001000} #define CT {B11111000,B00100000,B00100000,B00100000,B00100000,B00100000} #define CU {B10001000,B10001000,B10001000,B10001000,B10001000,B01110000} #define CV {B10001000,B10001000,B10001000,B10001000,B01010000,B00100000} #define CW {B10001000,B10001000,B10101000,B10101000,B10101000,B01010000} #define CX {B10001000,B01010000,B00100000,B00100000,B01010000,B10001000} #define CY {B10001000,B01010000,B00100000,B00100000,B00100000,B00100000} #define CZ {B11111000,B00001000,B00110000,B01100000,B10000000,B11111000} //Small Alphabets #define Sa{B00000000,B01110000,B00001000,B01111000,B10001000,B01111000} #define Sb{B10000000,B10000000,B10110000,B11001000,B10001000,B11110000} #define Sc{B00000000,B01110000,B10000000,B10000000,B10001000,B01110000} #define Sd{B00001000,B00001000,B01111000,B10001000,B10001000,B01111000} #define Se{B00000000,B01110000,B10001000,B11111000,B10000000,B01110000} #define Sf{B00110000,B01001000,B01000000,B11100000,B01000000,B01000000} #define Sg{B00000000,B01111000,B10001000,B01111000,B00001000,B01110000} #define Sh{B10000000,B10000000,B10110000,B11001000,B10001000,B10001000} #define Si{B00100000,B00000000,B01100000,B00100000,B00100000,B01111000} #define Sj{B00010000,B00000000,B00111000,B00010000,B10010000,B01100000} #define Sk{B10000000,B10010000,B10100000,B11000000,B10100000,B10010000} #define Sl{B01100000,B00100000,B00100000,B00100000,B00100000,B01111000} #define Sm{B00000000,B00000000,B11010000,B10101000,B10101000,B10001000} #define Sn{B00000000,B00000000,B10110000,B11001000,B10001000,B10001000} #define So{B00000000,B01110000,B10001000,B10001000,B10001000,B01110000} #define Sp{B00000000,B11110000,B10001000,B11110000,B10000000,B10000000} #define Sq{B00000000,B01101000,B10011000,B01111000,B00001000,B00001000} #define Sr{B00000000,B00000000,B10110000,B11001000,B10000000,B10000000} #define Ss{B00000000,B01110000,B10000000,B01110000,B00001000,B11110000} #define St{B01000000,B01000000,B11100000,B01000000,B01001000,B00110000} #define Su{B00000000,B00000000,B10001000,B10001000,B10011000,B01101000} #define Sv{B00000000,B00000000,B10001000,B10001000,B01010000,B00100000} #define Sw{B00000000,B00000000,B10001000,B10101000,B10101000,B01010000} #define Sx{B00000000,B10001000,B01010000,B00100000,B01010000,B10001000} #define Sy{B00000000,B10001000,B10001000,B01111000,B00001000,B01110000} #define Sz{B00000000,B11111000,B00010000,B00100000,B01000000,B11111000} //Numbers #define SPACE{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} #define NUM0{B01110000,B10011000,B10101000,B10101000,B11001000,B01110000} #define NUM1{B00100000,B01100000,B10100000,B00100000,B00100000,B01110000} #define NUM2{B01110000,B10001000,B00001000,B01110000,B10000000,B11111000} #define NUM3{B11110000,B00001000,B00001000,B01111000,B00001000,B11110000} #define NUM4{B10001000,B10001000,B10001000,B11111000,B00001000,B00001000} #define NUM5{B11111000,B10000000,B11110000,B00001000,B10001000,B01110000} #define NUM6{B11111000,B10000000,B11111000,B10001000,B10001000,B11111000} #define NUM7{B11111000,B00001000,B00001000,B01111000,B00001000,B00001000} #define NUM8{B11111000,B10001000,B11111000,B10001000,B10001000,B11111000} #define NUM9{B11111000,B10001000,B11111000,B00001000,B00001000,B11111000} //Operators #define DIVIDE{B00001000,B00010000,B00100000,B00100000,B01000000,B10000000} #define TWODOTS{B01100000,B01100000,B00000000,B00000000,B01100000,B01100000} #define DOT{B00000000,B00000000,B00000000,B00000000,B01100000,B01100000} #define COMA{B00000000,B00000000,B00000000,B00110000,B00110000,B01100000} #define LINE{B00000000,B00000000,B11111000,B11111000,B00000000,B00000000} #define QUESTION{B01110000,B10001000,B00010000,B00100000,B00000000,B00100000} #define MARK{B00100000,B01110000,B01110000,B00100000,B00000000,B00100000} //initializing pins int latchPin = 10; int clockPin = 13; int dataPin = 11; int clock = 9; int Reset = 8; int latchPinPORTB = latchPin - 8; int clockPinPORTB = clockPin - 8; int dataPinPORTB = dataPin - 8; int i = 0; int incomingByte[44]; long scrolling_word[6]; int array_turn=0; byte patterns[100][6]; //All possible incomeing data byte dummy_array[70][6] ={CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,SPACE,NUM0,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,NUM7,NUM8,NUM9,DIVIDE,TWODOTS,DOT,COMA,LINE,QUESTION,MARK,Sa,Sb,Sc,Sd,Se,Sf,Sg,Sh,Si,Sj,Sk,Sl,Sm,Sn,So,Sp,Sq,Sr,Ss,St,Su,Sv,Sw,Sx,Sy,Sz}; //Setup void setup(){ //Starting Serial Communication Serial.begin(9600); //Pin Mode Setup pinMode(dataPin,OUTPUT); pinMode(clockPin,OUTPUT); pinMode(latchPin,OUTPUT); pinMode(clock,OUTPUT); pinMode(Reset,OUTPUT); digitalWrite(Reset,HIGH); digitalWrite(Reset,LOW); setupSPI(); } //Function for building word void display_word(int loops,byte word_print[][6],int num_patterns,int delay_langth) { //this resets counter i = 0; for(int g=0;g<6;g++) //this resets the the long int scrolling_word[g] = 0; //main loop, goes over your symbols for(int x=0;x 0){ delay(100); incomingByte[array_turn] = Serial.read(); array_turn++; } else{ if(array_turn != 0){ for(int az=0;az 64 && incomingByte[az] < 91) || (incomingByte[az] > 96 && incomingByte[az] < 123)){ if(incomingByte[az] > 64 && incomingByte[az] < 91){ for(int lal=0;lal<6;lal++) patterns[az][lal] = dummy_array[incomingByte[az] - 65][lal]; } else{ for(int lal=0;lal<6;lal++) patterns[az][lal] = dummy_array[incomingByte[az] - 53][lal]; }} else{ switch(incomingByte[az]){ case 32://space for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[26][lol]; break; case 33://mark for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[43][lol]; break; case 45://line for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[41][lol]; break; case 44://coma for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[40][lol]; break; case 46://dot for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[39][lol]; break; case 47://dvide for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[37][lol]; break; case 48://0 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[27][lol]; break; case 49://1 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[28][lol]; break; case 50://2 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[29][lol]; break; case 51://3 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[30][lol]; break; case 52://4 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[31][lol]; break; case 53://5 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[32][lol]; break; case 54://6 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[33][lol]; break; case 55://7 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[34][lol]; break; case 56://8 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[35][lol]; break; case 57://9 for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[36][lol]; break; case 58://tow dots for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[38][lol]; break; case 63://quastion for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[42][lol]; break; default: for(int lol=0;lol<6;lol++) patterns[az][lol] = dummy_array[26][lol]; break; } } } } display_word(1,patterns,array_turn,15); array_turn =0; } } void latchOn(){ bitSet(PORTB,latchPinPORTB); } void latchOff(){ bitClear(PORTB,latchPinPORTB); } void setupSPI(){ byte clr; // enable SPI as master SPCR |= ( (1<