int ASeg = 13;
int BSeg = 12;
int CSeg = 11;
int DSeg = 10;
int ESeg = 9;
int FSeg = 8;
int GSeg = 7;
int Decimal = 2;
int a1 = 6;
int a2 = 5;
int a3 = 4;
int a4 = 3;
// set variable
long n = 0;
int x = 200;
int del = 1000; // fine adjustment for clock
void setup()
{
pinMode(a1, OUTPUT);
pinMode(a2, OUTPUT);
pinMode(a3, OUTPUT);
pinMode(a4, OUTPUT);
pinMode(ASeg, OUTPUT);
pinMode(BSeg, OUTPUT);
pinMode(CSeg, OUTPUT);
pinMode(DSeg, OUTPUT);
pinMode(ESeg, OUTPUT);
pinMode(FSeg, OUTPUT);
pinMode(GSeg, OUTPUT);
pinMode(Decimal, OUTPUT);
}
void loop()
{
clearLEDS(); // Eliminating ghost
pickDigit(1); // Display position 1
pickNumber((n/x/1000)%10); // Display number
delayMicroseconds(del); // Time adjustment
clearLEDS();
pickDigit(2);
pickNumber((n/x/100)%10);
delayMicroseconds(del);
clearLEDS();
pickDigit(3);
pickNumber((n/x/10)%10);
delayMicroseconds(del);
clearLEDS();
pickDigit(4);
pickNumber(n/x%10);
delayMicroseconds(del);
n++;
}
// Select display position
void pickDigit(int x)
{
digitalWrite(a1, LOW);
digitalWrite(a2, LOW);
digitalWrite(a3, LOW);
digitalWrite(a4, LOW);
switch(x)
{
case 1:
digitalWrite(a1, HIGH);
break;
case 2:
digitalWrite(a2, HIGH);
break;
case 3:
digitalWrite(a3, HIGH);
break;
case 4:
digitalWrite(a4, HIGH);
break;
}
}
// select display number
void pickNumber(int x)
{
switch(x) {
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: zero(); break;
}
}
void clearLEDS() // clear the screen
{
digitalWrite(ASeg, HIGH);
digitalWrite(BSeg, HIGH);
digitalWrite(CSeg, HIGH);
digitalWrite(DSeg, HIGH);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, HIGH);
}
//Display function ‘0-9’
void zero() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, HIGH);
digitalWrite(Decimal, LOW);
}
void one() {
digitalWrite(ASeg, HIGH);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, HIGH);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, HIGH);
digitalWrite(Decimal, HIGH);
}
void two() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, HIGH);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, LOW);
digitalWrite(Decimal, LOW);
}
void three() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, LOW);
digitalWrite(Decimal, HIGH);
}
void four() {
digitalWrite(ASeg, HIGH);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, HIGH);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
digitalWrite(Decimal, LOW);
}
void five() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, HIGH);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
digitalWrite(Decimal, HIGH);
}
void six() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, HIGH);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
digitalWrite(Decimal, LOW);
}
void seven() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, HIGH);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, HIGH);
digitalWrite(Decimal, HIGH);
}
void eight() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
digitalWrite(Decimal, LOW);
}
void nine() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
digitalWrite(Decimal, HIGH);
}