//SSD is Seven-Segment Display
int signal1[] = {46, 45, 44};
int signal2[] = {43, 42, 41};
int signal3[] = {40, 39, 38};
int signal4[] = {47, 48, 49};
int redDelay = 5000;
int yellowDelay = 2000;
#define START 50
#define STOP 51
#define LED1 22
/*
#define LED2 23
#define LED3 24
#define LED4 25
#define LED5 26
#define LED6 27
#define LED7 28
#define LED8 29
#define LED9 30
#define LED10 31
#define LED11 32
#define LED12 33
#define LED13 34
#define LED14 35
#define LED15 36
#define LED16 37
#define LED17 38
#define LED18 39
#define LED19 40
#define LED20 41
#define LED21 42
#define LED22 43
#define LED23 44
#define LED24 45
#define LED25 46
#define LED26 47
#define LED27 48
#define LED28 49
*/
void setup()
{
pinMode(LED1, OUTPUT);
for (int i = 0; i < 3; i++) {
pinMode(signal1[i], OUTPUT);
pinMode(signal2[i], OUTPUT);
pinMode(signal3[i], OUTPUT);
pinMode(signal4[i], OUTPUT);
}
for (int i = 0; i <= 13; i++)
pinMode(i, OUTPUT); //Set all pins from 0 to 13 as OUTPUT
}
//The line below is the array containing all the binary numbers for the digits on a SSD from 0 to 9
const int number[11] = {0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000};
void loop()
{
digitalWrite(LED1, LOW);
// Making Green LED at signal 1 and red LED's at other signal HIGH
digitalWrite(signal1[2], HIGH);
digitalWrite(signal1[0], LOW);
digitalWrite(signal2[0], HIGH);
digitalWrite(signal3[0], HIGH);
digitalWrite(signal4[0], HIGH);
for (int tens = 5; tens > -1; tens--)
{
display_tens(tens);
}
}
void display_tens(const int tens)
{
int pin1, a, ones;
//pin1 is just used to deal with pins of the 1st SSD which desplays the tens digit
for (pin1 = 0, a = 0; pin1 < 7; pin1++, a++)
{
digitalWrite(pin1, bitRead(number[tens], a));
}
for (ones = 9; ones > -1; ones--)
{
display_ones(ones);
delay(1000);
//I have given a delay of 300 milliseconds. You can put your own Time!!
}
}
void display_ones(const int x)
{ int pin2, b;
//pin2 is just used to deal with pins of the 2nd SSD which desplays the ones digit
for (pin2 = 7, b = 0; pin2 <= 13; pin2++, b++)
{
digitalWrite(pin2, bitRead(number[x], b));
}
}