const int btn = 13, segA = 32, segB = 33, segC = 25;
const int segD = 26, segE = 27, segF = 14, segG = 12;
int dado = 0;
bool btnState = HIGH;
bool pressed = false;
void setup() {
Serial.begin(115200);
Serial.println("Digite um número de 0 a 9");
displaySetup();
}
void loop() {
btnState = digitalRead(btn);
if(!btnState && !pressed){
pressed = true;
delay(20);
}
if(btnState && pressed){
dado++;
pressed = false;
delay(20);
}
switch(dado){
case 0: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,1,1,1,1,1,0);
break;
case 1: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(0,1,1,0,0,0,0);
break;
case 2: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,1,0,1,1,0,1);
break;
case 3: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,1,1,1,0,0,1);
break;
case 4: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(0,1,1,0,0,1,1);
break;
case 5: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,0,1,1,0,1,1);
break;
case 6: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,0,1,1,1,1,1);
break;
case 7: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,1,1,0,0,0,0);
break;
case 8: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,1,1,1,1,1,1);
break;
case 9: displayOn(0,0,0,0,0,0,0); delay(60);
displayOn(1,1,1,0,0,1,1);
break;
default: displayOn(1,1,1,1,1,1,0);
}
if(dado>9){
dado=0;
}
}
void displaySetup(){
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(btn, INPUT_PULLUP);
}
void displayOn(bool onA, bool onB, bool onC, bool onD, bool onE, bool onF, bool onG){
digitalWrite(segA, onA);
digitalWrite(segB, onB);
digitalWrite(segC, onC);
digitalWrite(segD, onD);
digitalWrite(segE, onE);
digitalWrite(segF, onF);
digitalWrite(segG, onG);
}