Here is my code. The original post was too long with it.
boolean data = 2;
boolean latch = 3;
boolean clock = 4;
boolean cathodeOne = 9;
boolean cathodeTwo = 10;
boolean cathodeThree = 11;
boolean cathodeFour = 12;
unsigned long timer;
unsigned long previousMillis = 0;
byte Zero[6][8] = {
{
0,0,1,0,0,0,0,0 }
,
{
0,0,0,1,0,0,0,0 }
,
{
0,0,0,0,1,0,0,0 }
,
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,0,0,1,0 }
,
{
0,0,0,0,0,0,0,1 }
,
};
byte One[2][8] = {
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,0,0,1,0 }
};
byte Two[5][8] = {
{
0,1,0,0,0,0,0,0 }
,
{
0,0,0,1,0,0,0,0 }
,
{
0,0,0,0,1,0,0,0 }
,
{
0,0,0,0,0,0,1,0 }
,
{
0,0,0,0,0,0,0,1 }
};
byte Three[5][8] = {
{
0,1,0,0,0,0,0,0 }
,
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,1,0,0,0 }
,
{
0,0,0,0,0,0,1,0 }
,
{
0,0,0,0,0,0,0,1 }
,
};
byte Four[4][8] = {
{
0,1,0,0,0,0,0,0 }
,
{
0,0,1,0,0,0,0,0 }
,
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,0,0,1,0 }
,
};
byte Five[5][8] = {
{
0,1,0,0,0,0,0,0 }
,
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,1,0,0,0 }
,
{
0,0,1,0,0,0,0,0 }
,
{
0,0,0,0,0,0,0,1 }
};
byte Six[6][8] = {
{
0,0,1,0,0,0,0,0 }
,
{
0,0,0,1,0,0,0,0 }
,
{
0,0,0,0,1,0,0,0 }
,
{
0,0,0,0,0,1,0,0 }
,
{
0,1,0,0,0,0,0,0 }
,
{
0,0,0,0,0,0,0,1 }
,
};
byte Seven[3][8] = {
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,0,0,1,0 }
,
{
0,0,0,0,0,0,0,1 }
,
};
byte Eight[7][8] = {
{
0,1,0,0,0,0,0,0 }
,
{
0,0,1,0,0,0,0,0 }
,
{
0,0,0,1,0,0,0,0 }
,
{
0,0,0,0,1,0,0,0 }
,
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,0,0,1,0 }
,
{
0,0,0,0,0,0,0,1 }
,
};
byte Nine[6][8] = {
{
0,1,0,0,0,0,0,0 }
,
{
0,0,1,0,0,0,0,0 }
,
{
0,0,0,0,1,0,0,0 }
,
{
0,0,0,0,0,1,0,0 }
,
{
0,0,0,0,0,0,1,0 }
,
{
0,0,0,0,0,0,0,1 }
,
};
void clockTick()
{
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);
}
void latchTick()
{
digitalWrite(latch, HIGH);
digitalWrite(latch, LOW);
}
void zero()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Zero[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Zero[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Zero[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Zero[3][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Zero[4][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Zero[5][x]);
clockTick();
}
latchTick();
}
void one()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, One[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, One[1][x]);
clockTick();
}
latchTick();
}
void two()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Two[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Two[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Two[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Two[3][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Two[4][x]);
clockTick();
}
latchTick();
}
void three()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Three[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Three[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Three[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Three[3][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Three[4][x]);
clockTick();
}
latchTick();
}
void four()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Four[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Four[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Four[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Four[3][x]);
clockTick();
}
latchTick();
}
void five()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Five[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Five[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Five[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Five[3][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Five[4][x]);
clockTick();
}
latchTick();
}
void six()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Six[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Six[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Six[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Six[3][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Six[4][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Six[5][x]);
clockTick();
}
latchTick();
}
void seven()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Seven[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Seven[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Seven[2][x]);
clockTick();
}
latchTick();
}
void eight()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Eight[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Eight[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Eight[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Eight[3][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Eight[4][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Eight[5][x]);
clockTick();
}
latchTick();
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Eight[6][x]);
clockTick();
}
latchTick();
}
void nine()
{
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Nine[0][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Nine[1][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Nine[2][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Nine[3][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Nine[4][x]);
clockTick();
}
latchTick();
for (int x = 0; x < 8; x++)
{
digitalWrite(data, Nine[5][x]);
clockTick();
}
latchTick();
}
void setup()
{
pinMode(data, OUTPUT);
pinMode(latch, OUTPUT);
pinMode(clock, OUTPUT);
pinMode(cathodeOne, OUTPUT);
pinMode(cathodeTwo, OUTPUT);
pinMode(cathodeThree, OUTPUT);
pinMode(cathodeFour, OUTPUT);
}
void loop()
{
timer = millis();
digitalWrite(cathodeOne, HIGH);
if(timer - previousMillis < 1000)
nine();
else if(timer - previousMillis >= 1000 && timer - previousMillis < 2000)
eight();
else if(timer - previousMillis >= 2000 && timer - previousMillis <3000)
seven();
else if(timer - previousMillis >= 3000 && timer - previousMillis <4000)
six();
else if(timer - previousMillis >= 4000 && timer - previousMillis <5000)
five();
else if(timer - previousMillis >= 5000 && timer - previousMillis <6000)
four();
else if(timer - previousMillis >= 6000 && timer - previousMillis <7000)
three();
else if(timer - previousMillis >= 7000 && timer - previousMillis <8000)
two();
else if(timer - previousMillis >= 8000 && timer - previousMillis <9000)
one();
else zero();
}