const int segA = 2;
const int segB = 3;
const int segC = 4;
const int segD = 5;
const int segE = 6;
const int segF = 7;
const int segG = 8;
const int segDP = 9;
const int sensorPin = 10;
int contador = 0;
boolean objeto_detectado = false;
boolean ultimo_estado_botao = false;
void setup() {
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(segDP, OUTPUT);
pinMode(sensorPin, INPUT);
}
void loop() {
boolean estado_botao = digitalRead(sensorPin);
if (estado_botao == HIGH && ultimo_estado_botao == LOW) {
objeto_detectado = true;
}
ultimo_estado_botao = estado_botao;
if (objeto_detectado) {
contador++;
atualizaDisplay(contador);
objeto_detectado = false;
}
delay(50);
}
void atualizaDisplay(int num) {
switch(num) {
case 0:
displayDigit(1, 1, 1, 1, 1, 1, 0);
break;
case 1:
displayDigit(0, 1, 1, 0, 0, 0, 0);
break;
case 2:
displayDigit(1, 1, 0, 1, 1, 0, 1);
break;
case 3:
displayDigit(1, 1, 1, 1, 0, 0, 1);
break;
case 4:
displayDigit(0, 1, 1, 0, 0, 1, 1);
break;
case 5:
displayDigit(1, 0, 1, 1, 0, 1, 1);
break;
case 6:
displayDigit(1, 0, 1, 1, 1, 1, 1);
break;
case 7:
displayDigit(1, 1, 1, 0, 0, 0, 0);
break;
case 8:
displayDigit(1, 1, 1, 1, 1, 1, 1);
break;
case 9:
displayDigit(1, 1, 1, 1, 0, 1, 1);
break;
default:
break;
}
}
void displayDigit(int a, int b, int c, int d, int e, int f, int g) {
digitalWrite(segA, a);
digitalWrite(segB, b);
digitalWrite(segC, c);
digitalWrite(segD, d);
digitalWrite(segE, e);
digitalWrite(segF, f);
digitalWrite(segG, g);
}