const int dataPin = 2; /* DS */
const int clockPin = 3; /* SHCP */
const int latchPin = 4; /* STCP */
#define y1 5
#define y2 6
#define r 7
#define g 8
#define q1 9
#define q2 10
int A, B, C, D;
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(y1, OUTPUT);
pinMode(y2, OUTPUT);
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(q1, OUTPUT);
pinMode(q2, OUTPUT);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(r, LOW);
digitalWrite(g, LOW);
digitalWrite(q1, LOW);
digitalWrite(q2, LOW);
}
int pattern[11] = {1, 79, 18, 6, 76, 36, 32, 15, 0, 4};
int q[9] = {128, 64, 32, 16, 8, 4, 2, 1, 0};
void loop()
{
//1
A = 69; B = 1; C = 53; D = 68;
digitalWrite(r, HIGH);
digitalWrite(g, LOW);
digitalWrite(y1, LOW);
for (int a = A; a >= D; a--)
{
for (int b = 0; b < 50; b++)
{
digitalWrite(q2, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[0]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[1]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[4]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[5]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
digitalWrite(q1, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(q1, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(q2, HIGH);
delay(2);
}
B--; C--;
}
//2
A = 67; B = 46; C = 51; D = 21;
digitalWrite(q2, LOW);
for (int a = A; a >= D; a--)
{
for (int b = 0; b < 50; b++)
{
digitalWrite(q2, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[0]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[1]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[6]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[7]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
digitalWrite(q1, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(q1, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(q2, HIGH);
delay(2);
}
B--; C--;
}
//3
A = 20; B = 2; C = 4; D = 18;
digitalWrite(y2, HIGH);
for (int a = A; a >= D; a--)
{
for (int b = 0; b < 50; b++)
{
digitalWrite(q2, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[0]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[1]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
digitalWrite(q1, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(q1, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(q2, HIGH);
delay(2);
}
B--; C--;
}
//4
A = 17; B = 41; C = 1; D = 16;
digitalWrite(y2, LOW);
for (int a = A; a >= D; a--)
{
for (int b = 0; b < 50; b++)
{
digitalWrite(q2, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[0]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[1]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[4]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[5]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
digitalWrite(q1, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(q1, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(q2, HIGH);
delay(2);
}
B--; C--;
}
//5
A = 15; B = 39; C = 37; D = 0;
digitalWrite(r, LOW);
digitalWrite(g, HIGH);
digitalWrite(q2, LOW);
for (int a = A; a >= D; a--)
{
for (int b = 0; b < 50; b++)
{
digitalWrite(q2, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[0]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[1]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[4]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[5]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
digitalWrite(q1, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(q1, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(q2, HIGH);
delay(2);
}
B--; C--;
}
//6
A = 17; B = 23; C = 21; D = 0;
digitalWrite(q2, LOW);
for (int a = A; a >= D; a--)
{
for (int b = 0; b < 50; b++)
{
digitalWrite(q2, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[2]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[3]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[4]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[5]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
digitalWrite(q1, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(q1, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(q2, HIGH);
delay(2);
}
B--; C--;
}
//7
A = 3; B = 5; C = 3; D = 0;
digitalWrite(y1, HIGH);
for (int a = A; a >= D; a--)
{
for (int b = 0; b < 50; b++)
{
digitalWrite(q2, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[a%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[4]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[B%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[5]);
digitalWrite(latchPin, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C/10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(latchPin, HIGH);
digitalWrite(q1, HIGH);
delay(2);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern[C%10]);
shiftOut(dataPin, clockPin, LSBFIRST, q[8]);
digitalWrite(q1, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(q2, HIGH);
delay(2);
}
B--; C--;
}
}