int a = 5;
int b = 1;
int c = 0;
int d = 4;
int e = 7;
int f = 8;
int g = 9;
int relay = 13;
// set the anode interface
const int d3 = 6;
const int d2 = 2;
const int d1 = 3;
int DwnBT = 11;
int SetBT = 10;
int UpBT = 12;
//set variable
//long n = 0;
int x = 1;
const unsigned long Minute =1000UL*60UL;
//fine-tuning value for clock
void setup()
{
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(DwnBT, INPUT);
pinMode(SetBT, INPUT);
pinMode(UpBT, INPUT);
}
int static Digitcount = 0;
int count = 0;
void loop()
{
int Dwn = digitalRead(DwnBT);
int Set = digitalRead(SetBT);
int Up = digitalRead(UpBT);
long int Digitcount1 = 0;
long int Digitcount2 = 0;
long int Digitcount3 = 0;
int PauseState=0;
int StartState=0;
int Pause = LOW;
int sec =0;
int minute = 0;
if (digitalRead(SetBT) == HIGH)
{
count++;
delay(250);
if (count >= 2)
{
count = 0;
}
if (count == 1)
{
repeat:
digitalWrite(relay, HIGH);
if(Digitcount > 0)
{
delay(Minute) ;
Digitcount--;
goto repeat;
}
if(Digitcount == 0){
digitalWrite(relay , LOW);
}
}
if (count == 0)
{
digitalWrite(relay, LOW);
}
}
if (Up == HIGH)
{
Digitcount++;
delay(250);
if (Digitcount >=1000)
{
Digitcount=000;
}
}
if (Dwn ==HIGH)
{
Digitcount--;
delay(250);
if (Digitcount < 0)
{
Digitcount = 999;
}
}
Digitcount1 =((Digitcount*1000/1000)%10);
Digitcount2 = ((Digitcount*100/1000)%10);
Digitcount3 = ((Digitcount*10/1000)%10);
if(Digitcount>=0 && Digitcount<100)
{
clearLEDs();
pickdigit (1);
pickNumber2(Digitcount2);
clearLEDs();
pickdigit (2);
pickNumber1(Digitcount1);
clearLEDs();
pickdigit (3);
pickNumber3(Digitcount3);
}
if(Digitcount>=10 && Digitcount<100)
{
clearLEDs();
pickdigit (1);
pickNumber1(Digitcount1);
clearLEDs();
pickdigit (2);
pickNumber2(Digitcount2);
clearLEDs();
pickdigit (3);
pickNumber3(Digitcount3);
}
if(Digitcount>=100 && Digitcount<1000)
{
clearLEDs();
pickdigit (1);
pickNumber1(Digitcount1);
clearLEDs();
pickdigit (2);
pickNumber2(Digitcount2);
clearLEDs();
pickdigit (3);
pickNumber3(Digitcount3);
}
}
void pickdigit (int x)
{
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
switch(x)
{
case 1:
digitalWrite(d1, LOW);
break;
case 2:
digitalWrite(d2, LOW);
break;
case 3:
digitalWrite(d3, LOW);
break;
}
}
void pickNumber1(int Digitcount1) //define pickNumber(x)to display number x
{
digitalWrite(d1, LOW);digitalWrite(d2,HIGH);digitalWrite(d3,HIGH);
switch(Digitcount1)
{
case 0:
zero();
break;
case 1:
one();
break;
case 2:
two();
break;
case 3:
three();
break;
case 4:
four();
break;
case 5:
five();
break;
case 6:
six();
break;
case 7:
seven();
break;
case 8:
eight();
break;
case 9:
nine();
break;
default:;
}
}
void pickNumber2(int Digitcount2) //define pickNumber(x)to display number x
{
digitalWrite(d1, HIGH);digitalWrite(d2,LOW);digitalWrite(d3,HIGH);
switch(Digitcount2)
{
case 0:
zero();
break;
case 1:
one();
break;
case 2:
two();
break;
case 3:
three();
break;
case 4:
four();
break;
case 5:
five();
break;
case 6:
six();
break;
case 7:
seven();
break;
case 8:
eight();
break;
case 9:
nine();
break;
default:;
}
}
void pickNumber3(int Digitcount3) //define pickNumber(x)to display number x
{
digitalWrite(d1, HIGH);digitalWrite(d2,HIGH);digitalWrite(d3,LOW);
switch(Digitcount3)
{
case 0:
zero();
break;
case 1:
one();
break;
case 2:
two();
break;
case 3:
three();
break;
case 4:
four();
break;
case 5:
five();
break;
case 6:
six();
break;
case 7:
seven();
break;
case 8:
eight();
break;
case 9:
nine();
break;
default:;
}
}
void clearLEDs() //clear contents
{
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void zero() //define 0 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
}
void one() // define 1 as cathode pin switch
{
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void two() // define 2 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void three() // define 3 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void four() // define 4 as cathode pin switch
{
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void five() // define 5 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void six() // define 6 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void seven() // define 7 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void eight() // define 8 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void nine() // define 9 as cathode pin switch
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}