// 7 segment 1 digit display
// 7 segment 1 digit variables
int pin_a = 7;
int pin_b = 8;
int pin_c = 10;
int pin_d = 11;
int pin_e = 13;
int pin_f = 6;
int pin_g = 5;
int pin_dp = 9;
// Button variables
int pin_button = 3;
bool state_button, old_state_button;
int counter = 0;
void setup() {
pinMode(pin_a, OUTPUT);
pinMode(pin_b, OUTPUT);
pinMode(pin_c, OUTPUT);
pinMode(pin_d, OUTPUT);
pinMode(pin_e, OUTPUT);
pinMode(pin_f, OUTPUT);
pinMode(pin_g, OUTPUT);
pinMode(pin_dp, OUTPUT);
pinMode(pin_button, INPUT);
Serial.begin(9600);
}
void zero() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, LOW);
digitalWrite(pin_e, LOW);
digitalWrite(pin_f, LOW);
digitalWrite(pin_g, HIGH);
}
void one() {
digitalWrite(pin_a, HIGH);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, HIGH);
digitalWrite(pin_e, HIGH);
digitalWrite(pin_f, HIGH);
digitalWrite(pin_g, HIGH);
}
void two() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, HIGH);
digitalWrite(pin_d, LOW);
digitalWrite(pin_e, LOW);
digitalWrite(pin_f, HIGH);
digitalWrite(pin_g, LOW);
}
void three() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, LOW);
digitalWrite(pin_e, HIGH);
digitalWrite(pin_f, HIGH);
digitalWrite(pin_g, LOW);
}
void four() {
digitalWrite(pin_a, HIGH);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, HIGH);
digitalWrite(pin_e, HIGH);
digitalWrite(pin_f, LOW);
digitalWrite(pin_g, LOW);
digitalWrite(pin_dp, HIGH);
}
void five() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, HIGH);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, LOW);
digitalWrite(pin_e, HIGH);
digitalWrite(pin_f, LOW);
digitalWrite(pin_g, LOW);
}
void six() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, HIGH);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, LOW);
digitalWrite(pin_e, LOW);
digitalWrite(pin_f, LOW);
digitalWrite(pin_g, LOW);
}
void seven() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, HIGH);
digitalWrite(pin_e, HIGH);
digitalWrite(pin_f, HIGH);
digitalWrite(pin_g, HIGH);
}
void eight() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, LOW);
digitalWrite(pin_e, LOW);
digitalWrite(pin_f, LOW);
digitalWrite(pin_g, LOW);
}
void nine() {
digitalWrite(pin_a, LOW);
digitalWrite(pin_b, LOW);
digitalWrite(pin_c, LOW);
digitalWrite(pin_d, LOW);
digitalWrite(pin_e, HIGH);
digitalWrite(pin_f, LOW);
digitalWrite(pin_g, LOW);
}
void dote(bool state) {
if(state == HIGH) {
digitalWrite(pin_dp, LOW); // dote is on
} else {
digitalWrite(pin_dp, HIGH); // dote is off
}
}
void clear() {
digitalWrite(pin_a, HIGH);
digitalWrite(pin_b, HIGH);
digitalWrite(pin_c, HIGH);
digitalWrite(pin_d, HIGH);
digitalWrite(pin_e, HIGH);
digitalWrite(pin_f, HIGH);
digitalWrite(pin_g, HIGH);
}
void blinkDote() {
dote(HIGH);
delay(500);
dote(LOW);
delay(500);
}
void numberShow() {
clear();
zero();
blinkDote();
clear();
one();
blinkDote();
clear();
two();
blinkDote();
clear();
three();
blinkDote();
clear();
four();
blinkDote();
clear();
five();
blinkDote();
clear();
six();
blinkDote();
clear();
seven();
blinkDote();
clear();
eight();
blinkDote();
clear();
nine();
blinkDote();
}
void button() {
state_button = digitalRead(pin_button);
if(state_button == LOW && old_state_button == HIGH) {
counter++;
Serial.println(counter);
}
if(state_button == HIGH && old_state_button == LOW) {
delay(50);
}
old_state_button = state_button;
}
void loop() {
button();
switch(counter) {
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:
clear();
break;
}
}