#define _7seg_A 15
#define _7seg_B 2
#define _7seg_C 0
#define _7seg_D 4
#define _7seg_E 16
#define _7seg_F 17
#define _7seg_G 5
#define _7seg_com1 26
#define _7seg_com2 27
#define _7seg_com3 14
#define _7seg_com4 12
#define b1 18
#define b2 19
int8_t numero[10] = {0b01111110, // 0
0b00110000, // 1
0b01101101, // 2
0b01111001, // 3
0b00110011, // 4
0b01011011, // 5
0b00011111, // 6
0b01110000, // 7
0b01111111, // 8
0b01110011 // 9
};
int contador = 9990;
bool sb1 = 0, sb2 = 0;
void setup() {
Serial.begin(115200);
Serial.println(" ");
delay(1000);
pinMode(_7seg_A, OUTPUT);
pinMode(_7seg_B, OUTPUT);
pinMode(_7seg_C, OUTPUT);
pinMode(_7seg_D, OUTPUT);
pinMode(_7seg_E, OUTPUT);
pinMode(_7seg_F, OUTPUT);
pinMode(_7seg_G, OUTPUT);
pinMode(_7seg_com1, OUTPUT);
pinMode(_7seg_com2, OUTPUT);
pinMode(_7seg_com3, OUTPUT);
pinMode(_7seg_com4, OUTPUT);
pinMode(b1, INPUT);
pinMode(b2, INPUT);
}
void loop() {
printado(contador);
if(digitalRead(b1) == HIGH ){
contador++;
sb1 = 1;
}
if(digitalRead(b2) == HIGH && sb2 == 0){
contador--;
sb2 = 1;
}
if(digitalRead(b1) == LOW && sb1 == 1)sb1 = 0;
if(digitalRead(b2) == LOW && sb2 == 1)sb2 = 0;
}
void printDisplay(int valor){
digitalWrite(_7seg_A, numero[valor] & 0b01000000);
digitalWrite(_7seg_B, numero[valor] & 0b00100000);
digitalWrite(_7seg_C, numero[valor] & 0b00010000);
digitalWrite(_7seg_D, numero[valor] & 0b00001000);
digitalWrite(_7seg_E, numero[valor] & 0b00000100);
digitalWrite(_7seg_F, numero[valor] & 0b00000010);
digitalWrite(_7seg_G, numero[valor] & 0b00000001);
}
void printado(int valor){
Serial.println(valor);
int u = 0, d = 0, c = 0, m = 0;
u = valor%10; // unidade
d = valor/10; // dezena
if(d > 9)d = d % 10;
c = valor/100; // centena
if(c > 9)c = c % 10;
m = valor/1000; // unidade de milhar
if(m > 9)m = m % 10;
printDisplay(u);
digitalWrite(_7seg_com1, 1);
delay(5);
digitalWrite(_7seg_com1, 0);
printDisplay(d);
digitalWrite(_7seg_com2, 1);
delay(2);
digitalWrite(_7seg_com2, 0);
printDisplay(c);
digitalWrite(_7seg_com3, 1);
delay(5);
digitalWrite(_7seg_com3, 0);
printDisplay(m);
digitalWrite(_7seg_com4, 1);
delay(5);
digitalWrite(_7seg_com4, 0);
}