int count_1 = 0;
int count_2 = 0;
int count_3 = 0;
int count_4 = 0;
int counter = 0;
int counter_d = 0;
int counter_c = 0;
int counter_b = 0;
int counter_a = 0;
int counter_ones = 0;
int counter_EAST = 0;
int counter_WEST = 0;
int counter_NORTH = 0;
int counter_SOUTH = 0;
int counter_C = 0;
int a = 0;
int b = 0;
int c = 0;
int d = 0;
// int counter_WEST = 0;
// ............................................................. //
int pin1_1 = 2;
int pin1_2 = 3;
int pin1_3 = 4;
int pin1_4 = 5;
int pin1_5 = 6;
int pin1_6 = 7;
int pin1_7 = 8;
int D1_1 = 9;
int D1_2 = 10;
unsigned long previousMillis = 0;
const long interval = 1000;
unsigned long previousMillis_EAST = 0;
const long interval_EAST = 1000;
unsigned long previousMillis_WEST = 0;
const long interval_WEST = 1000;
// int count = 0;
// // ............................................................. //
int pin2_1 = 14;
int pin2_2 = 15;
int pin2_3 = 16;
int pin2_4 = 17;
int pin2_5 = 18;
int pin2_6 = 19;
int pin2_7 = 13;
int D2_1 = 11;
int D2_2 = 12;
// // ............................................................. //
int pin3_1 = 22;
int pin3_2 = 23;
int pin3_3 = 24;
int pin3_4 = 25;
int pin3_5 = 26;
int pin3_6 = 27;
int pin3_7 = 28;
int D3_1 = 29;
int D3_2 = 30;
// ............................................................. //
int pin4_1 = 31;
int pin4_2 = 32;
int pin4_3 = 33;
int pin4_4 = 34;
int pin4_5 = 35;
int pin4_6 = 36;
int pin4_7 = 37;
int D4_1 = 38;
int D4_2 = 39;
// ............................................................. //
int r4 = 40;
int y4 = 41;
int g4 = 42;
int r3 = 43;
int y3 = 44;
int g3 = 45;
int r2 = 46;
int y2 = 47;
int g2 = 48;
int r1 = 49;
int y1 = 50;
int g1 = 51;
int a1 = 5; // index array in first segment digit 1
int a2 = 4; // index array in first segment digit 2
int b1 = 0; // index array in second segment digit 1
int b2 = 3; // index array in second segment digit 2
int c1 = 5; // index array in third segment digit 1
int c2 = 1; // index array in third segment digit 2
int d1 = 5; // index array in fourth segment digit 1
int d2 = 1; // index array in fourth segment digit 2
int DELAY =1; // Delay light segment
int TIME = 0; // time loading
// Matrix Number of 7 segment
int Arduino_Pins_1[7] = {pin1_1, pin1_2, pin1_3, pin1_4, pin1_5, pin1_6, pin1_7}; // an array of pin numbers to which LEDs
int Arduino_Pins_2[7] = {pin2_1, pin2_2, pin2_3, pin2_4, pin2_5, pin2_6, pin2_7}; // an array of pin numbers to which LEDs
int Arduino_Pins_3[7] = {pin3_1, pin3_2, pin3_3, pin3_4, pin3_5, pin3_6, pin3_7}; // an array of pin numbers to which LEDs
int Arduino_Pins_4[7] = {pin4_1, pin4_2, pin4_3, pin4_4, pin4_5, pin4_6, pin4_7}; // an array of pin numbers to which LEDs
int Segment_Pins[10][7] = {{0,0,0,0,0,0,1}, // 0
{1,0,0,1,1,1,1}, // 1
{0,0,1,0,0,1,0}, // 2
{0,0,0,0,1,1,0}, // 3
{1,0,0,1,1,0,0}, // 4
{0,1,0,0,1,0,0}, // 5
{0,1,0,0,0,0,0}, // 6
{0,0,0,1,1,1,1}, // 7
{0,0,0,0,0,0,0}, // 8
{0,0,0,0,1,0,0}, // 9
};
void setup()
{
// ............................................................. //
Serial.begin(115200);
// ............................................................. //
pinMode(pin1_1, OUTPUT);
pinMode(pin1_2, OUTPUT);
pinMode(pin1_3, OUTPUT);
pinMode(pin1_4, OUTPUT);
pinMode(pin1_5, OUTPUT);
pinMode(pin1_6, OUTPUT);
pinMode(pin1_7, OUTPUT);
pinMode(D1_1, OUTPUT);
pinMode(D1_2, OUTPUT);
// ............................................................. //
pinMode(pin2_1, OUTPUT);
pinMode(pin2_2, OUTPUT);
pinMode(pin2_3, OUTPUT);
pinMode(pin2_4, OUTPUT);
pinMode(pin2_5, OUTPUT);
pinMode(pin2_6, OUTPUT);
pinMode(pin2_7, OUTPUT);
pinMode(D2_1, OUTPUT);
pinMode(D2_2, OUTPUT);
// ............................................................. //
pinMode(pin3_1, OUTPUT);
pinMode(pin3_2, OUTPUT);
pinMode(pin3_3, OUTPUT);
pinMode(pin3_4, OUTPUT);
pinMode(pin3_5, OUTPUT);
pinMode(pin3_6, OUTPUT);
pinMode(pin3_7, OUTPUT);
pinMode(D3_1, OUTPUT);
pinMode(D3_2, OUTPUT);
// ............................................................. //
pinMode(pin4_1, OUTPUT);
pinMode(pin4_2, OUTPUT);
pinMode(pin4_3, OUTPUT);
pinMode(pin4_4, OUTPUT);
pinMode(pin4_5, OUTPUT);
pinMode(pin4_6, OUTPUT);
pinMode(pin4_7, OUTPUT);
pinMode(D4_1, OUTPUT);
pinMode(D4_2, OUTPUT);
// ............................................................. //
pinMode(r4, OUTPUT);
pinMode(y4, OUTPUT);
pinMode(g4, OUTPUT);
// ............................................................. //
pinMode(r3, OUTPUT);
pinMode(y3, OUTPUT);
pinMode(g3, OUTPUT);
// ............................................................. //
pinMode(r2, OUTPUT);
pinMode(y2, OUTPUT);
pinMode(g2, OUTPUT);
// ............................................................. //
pinMode(r1, OUTPUT);
pinMode(y1, OUTPUT);
pinMode(g1, OUTPUT);
// ............................................................. //
}
// ================================================================================================================= //
void interrupt_1()
{
while (Serial.available())
{
char inChar_1 = (char)Serial.read();
while (inChar_1 == '1' || inChar_1 == '2' || inChar_1 == '3' ||inChar_1 == '4')
{
if (counter_C == 0)
{
if (inChar_1 == '1')
{
counter_EAST = 1;
counter_WEST = 0;
counter_NORTH = 0;
counter_SOUTH = 0;
a = 1;
counter_C = 1;
}
else if (inChar_1 == '2')
{
counter_EAST = 0;
counter_WEST = 1;
counter_NORTH = 0;
counter_SOUTH = 0;
b = 2;
counter_C = 1;
}
else if (inChar_1 == '3')
{
counter_EAST = 0;
counter_WEST = 0;
counter_NORTH = 1;
counter_SOUTH = 0;
c = 3;
counter_C = 1;
}
else if (inChar_1 == '4')
{
counter_EAST = 0;
counter_WEST = 0;
counter_NORTH = 0;
counter_SOUTH = 1;
d = 4;
counter_C = 1;
}
}
char inChar_1 = (char)Serial.read();
unsigned long currentMillis_EAST = millis();
// Check if the specified interval has passed
if (currentMillis_EAST - previousMillis_EAST >= interval)
{
// Save the current time
previousMillis_EAST = currentMillis_EAST;
// Display the first digit
for (int n = 0; n < 500; n++)
{
D4_First_Zero();
D4_Second_Zero();
D1_First_Zero();
D1_Second_Zero();
D2_First_Zero();
D2_Second_Zero();
D3_First_Zero();
D3_Second_Zero();
}
}
if ( counter_EAST == 1 )
{
counter_EAST = 2;
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
}
if ( counter_EAST == 2)
{
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(g1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
}
if (inChar_1 == '0')
{
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
counter_C = 0;
break;
}
// .....................................................................//
if ( counter_WEST == 1 )
{
counter_WEST = 2;
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
}
if ( counter_WEST == 2)
{
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(g2, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
}
// .....................................................................//
if ( counter_NORTH == 1 )
{
counter_NORTH = 2;
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
}
if ( counter_NORTH == 2)
{
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(g3, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r4, HIGH);
}
// .....................................................................//
if ( counter_SOUTH == 1 )
{
counter_SOUTH = 2;
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(500);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(500);
}
if ( counter_SOUTH == 2)
{
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r2, HIGH);
}
}
}
return;
}
//================================================================================================================= void s1d2
void D1_Second()
{
for(int j=0;j<7;j++)
{
digitalWrite(Arduino_Pins_1[j],Segment_Pins[a1][j]);
} // End J Loop
digitalWrite(D1_1, 0);
digitalWrite(D1_2, 1);
delay(DELAY);
}
//================================================================================================================= void s1d1
void D1_First()
{
for(int j=0;j<7;j++)
{
digitalWrite(Arduino_Pins_1[j],Segment_Pins[a2][j]);
} // End J Loop
digitalWrite(D1_1, 1);
digitalWrite(D1_2, 0);
delay(DELAY);
}
//================================================================================================================= //
//================================================================================================================= void s2d2
void D2_Second()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_2[k],Segment_Pins[b1][k]);
} // End J Loop
digitalWrite(D2_1, 0);
digitalWrite(D2_2, 1);
delay(DELAY);
}
//================================================================================================================= void s2d1
void D2_First()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_2[k],Segment_Pins[b2][k]);
} // End J Loop
digitalWrite(D2_1, 1);
digitalWrite(D2_2, 0);
delay(DELAY);
}
//================================================================================================================= //
//================================================================================================================= void s3d2
void D3_Second()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_3[k],Segment_Pins[c1][k]);
} // End J Loop
digitalWrite(D3_1, 0);
digitalWrite(D3_2, 1);
delay(DELAY);
}
//================================================================================================================= void s3d1
void D3_First()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_3[k],Segment_Pins[c2][k]);
} // End J Loop
digitalWrite(D3_1, 1);
digitalWrite(D3_2, 0);
delay(DELAY);
}
//================================================================================================================= //
//================================================================================================================= void s4d2
void D4_Second()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_4[k],Segment_Pins[d1][k]);
} // End J Loop
digitalWrite(D4_1, 0);
digitalWrite(D4_2, 1);
delay(DELAY);
}
//================================================================================================================= void s4d1
void D4_First()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_4[k],Segment_Pins[d2][k]);
} // End J Loop
digitalWrite(D4_1, 1);
digitalWrite(D4_2, 0);
delay(DELAY);
}
//================================================================================================================= //
//================================================================================================================= //
//================================================================================================================= //
//================================================================================================================= void s1d2
void D1_Second_Zero()
{
for(int j=0;j<7;j++)
{
digitalWrite(Arduino_Pins_1[j],Segment_Pins[0][j]);
} // End J Loop
digitalWrite(D1_1, 0);
digitalWrite(D1_2, 1);
delay(DELAY);
}
//================================================================================================================= void s1d1
void D1_First_Zero()
{
for(int j=0;j<7;j++)
{
digitalWrite(Arduino_Pins_1[j],Segment_Pins[0][j]);
} // End J Loop
digitalWrite(D1_1, 1);
digitalWrite(D1_2, 0);
delay(DELAY);
}
//================================================================================================================= //
//================================================================================================================= void s2d2
void D2_Second_Zero()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_2[k],Segment_Pins[0][k]);
} // End J Loop
digitalWrite(D2_1, 0);
digitalWrite(D2_2, 1);
delay(DELAY);
}
//================================================================================================================= void s2d1
void D2_First_Zero()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_2[k],Segment_Pins[0][k]);
} // End J Loop
digitalWrite(D2_1, 1);
digitalWrite(D2_2, 0);
delay(DELAY);
}
//================================================================================================================= //
//================================================================================================================= void s3d2
void D3_Second_Zero()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_3[k],Segment_Pins[0][k]);
} // End J Loop
digitalWrite(D3_1, 0);
digitalWrite(D3_2, 1);
delay(DELAY);
}
//================================================================================================================= void s3d1
void D3_First_Zero()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_3[k],Segment_Pins[0][k]);
} // End J Loop
digitalWrite(D3_1, 1);
digitalWrite(D3_2, 0);
delay(DELAY);
}
//================================================================================================================= //
//================================================================================================================= void s4d2
void D4_Second_Zero()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_4[k],Segment_Pins[0][k]);
} // End J Loop
digitalWrite(D4_1, 0);
digitalWrite(D4_2, 1);
delay(DELAY);
}
//================================================================================================================= void s4d1
void D4_First_Zero()
{
for(int k=0;k<7;k++)
{
digitalWrite(Arduino_Pins_4[k],Segment_Pins[0][k]);
} // End J Loop
digitalWrite(D4_1, 1);
digitalWrite(D4_2, 0);
delay(DELAY);
}
//================================================================================================================= ///
void loop()
{
interrupt_1();
unsigned long currentMillis = millis();
// Check if the specified interval has passed
if (currentMillis - previousMillis >= interval)
{
// Save the current time
previousMillis = currentMillis;
// Display the first digit
for (int n = 0; n < 115; n++)
{
D4_First();
D4_Second();
D1_First();
D1_Second();
D2_First();
D2_Second();
D3_First();
D3_Second();
}
// Update the indices for the next iteration
a1--;
if (a1 < 0)
{
a1 = 9;
a2--;
}
if (count_4 == 0)
{
if (a2 <= 0 && a1 == 0)
{
a2 = 1;
a1 = 5;
count_4 = 1;
}
}
if (count_4 == 1)
{
if (a2 <= 0 && a1 == 0)
{
a2 = 4;
a1 = 5;
count_4 = 0;
}
}
b1--;
if (b1 < 0)
{
b1 = 9;
b2--;
}
if (count_3 == 0)
{
if (b2 <= 0 && b1 == 0)
{
b2 = 1;
b1 = 5;
count_3 = 1;
}
}
if (count_3 == 1)
{
if (b2 <= 0 && b1 == 0)
{
b2 = 4;
b1 = 5;
count_3 = 0;
}
}
c1--;
if (c1 < 0)
{
c1 = 9;
c2--;
}
if (count_2 == 0)
{
if (c2 <= 0 && c1 == 0)
{
c2 = 1;
c1 = 5;
count_2 = 1;
}
}
if (count_2 == 1)
{
if (c2 <= 0 && c1 == 0)
{
c2 = 4;
c1 = 5;
count_2 = 0;
}
}
d1--;
if (d1 < 0)
{
d1 = 9;
d2--;
}
if (count_1 == 1)
{
if (d2 <= 0 && d1 == 0)
{
d2 = 1;
d1 = 5;
count_1 = 0;
}
}
if (count_1 == 0)
{
if (d2 <= 0 && d1 == 0)
{
d2 = 4;
d1 = 5;
count_1 = 1;
}
}
// ------------------------------------------------------------------------------------ //
if (counter_d == 0)
{
if (d2 <= 1 && d1 <= 5 && d2 >= 0 && d1 > 0)
{
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
}
if (d2 == 0 && d1 <= 3 && d1 > 0)
{
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
if (d1 == 1)
{
counter_d = 1;
delay(1);
}
}
}
if (counter_d == 1)
{
if (d2 == 4 && d1 == 5 && d2 >= 3 && d1 > 3)
{
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
}
if (d2 == 3 && d1 == 3 && d1 > 0)
{
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
}
if (d2 == 3 && d1 == 0 || d2 == 2 && d1 <= 9 && d2 > 0 && d1 > 7)
{
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(g1, LOW);
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
}
if (d2 == 1 && d1 == 8 && d1 > 4)
{
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
counter_ones = 1;
}
if (counter_ones == 1)
{
if (d2 <= 1 && d1 == 4 && d1 > 3)
{
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(g1, HIGH);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
}
if (d2 == 0 && d1 <= 3 && d1 > 0)
{
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
if (d2 == 0 && d1 == 1)
{
counter_d = 0;
counter_ones = 0;
delay(1);
}
}
}
}
}
}