int pin[7] = {32, 33, 25, 26, 27, 14, 12};
int number[10] = {1, 79, 18, 6, 76, 36, 32, 15, 0, 12};
// int seg[4] = {15, 5, 18, 19};
int seg[4] = {19, 18, 5, 15};
int k = 0, digits = 2;
int bottom = 4;
bool on = 0;
void display(int number){
for(int i = 6; i >= 0; i--){
digitalWrite(pin[i], number % 2);
number /= 2;
}
}
void setup() {
pinMode(bottom, INPUT_PULLUP);
for(int i = 0; i < 4 ; i++){
pinMode(seg[i], OUTPUT);
}
for(int i = 0; i < 7; i++){
pinMode(pin[i], OUTPUT);
digitalWrite(pin[i], HIGH);
}
}
void out() {
int num = k;
for(int i = 0; i < 4 - digits; i++){
for(int j = 0; j < 4 - digits; j++){
digitalWrite(seg[j], i == j);
}
display(number[num % 10]);
delay(2);
for(int j = 0; j < 7; j++)
digitalWrite(pin[j], HIGH);
num /= 10;
}
}
int add = 1;
void loop() {
while(!on){
if(!digitalRead(bottom)){
on = !on;
}
}
for(int i = 0; i < 50; i++){
out();
}
if(!digitalRead(bottom)){
add = -add;
}
k += add;
if(k >= 20 && add == 1){
k = 20;
}
if(k < 0){
k = 36;
}
}