const int a = 6; // Declara o Pino A do display de 7 segmentos na porta 6
const int b = 7; // Declara o Pino B do display de 7 segmentos na porta 7
const int c = 13; // Declara o Pino C do display de 7 segmentos na porta 13
const int d = 4; // Declara o Pino D do display de 7 segmentos na porta 4
const int e = 5; // Declara o Pino E do display de 7 segmentos na porta 5
const int f = 8; // Declara o Pino F do display de 7 segmentos na porta 8
const int g = 9; // Declara o Pino G do display de 7 segmentos na porta 9
const byte pb1 = 3; // Declara o PB1 na porta 3
int x = 0; // Declara a variavel x e inicia ela como 0
volatile byte state_pb1 = LOW; // Declara a variavel state_pb1 e inicia ela como 0
void setup() {
pinMode(6, OUTPUT);//Declara o Pino 6 como Saída
pinMode(7, OUTPUT);//Declara o Pino 7 como Saída
pinMode(13, OUTPUT);//Declara o Pino 13 como Saída
pinMode(4, OUTPUT);//Declara o Pino 4 como Saída
pinMode(5, OUTPUT);//Declara o Pino 5 como Saída
pinMode(8, OUTPUT);//Declara o Pino 8 como Saída
pinMode(9, OUTPUT);//Declara o Pino 9 como Saída
pinMode(pb1, INPUT);//Declara o PB1 como entrada PULLUP
Serial.begin(9600);
digitalWrite(a, HIGH);//Deixa o pino A do display de 7 de segmentos desligado
digitalWrite(b, HIGH);//Deixa o pino B do display de 7 de segmentos desligado
digitalWrite(c, HIGH);//Deixa o pino C do display de 7 de segmentos desligado
digitalWrite(d, HIGH);//Deixa o pino D do display de 7 de segmentos desligado
digitalWrite(e, HIGH);//Deixa o pino E do display de 7 de segmentos desligado
digitalWrite(f, HIGH);//Deixa o pino F do display de 7 de segmentos desligado
digitalWrite(g, HIGH);//Deixa o pino G do display de 7 de segmentos desligado
}
void zero() //Void que apresenta o número 0
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, LOW);// Indica porta como ligado
digitalWrite(e, LOW);// Indica porta como ligado
digitalWrite(f, LOW);// Indica porta como ligado
digitalWrite(g, HIGH);// Indica porta como desligado
}
void um() //Void que apresenta o número 1
{
digitalWrite(a, HIGH);// Indica porta como desligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, HIGH);// Indica porta como desligado
digitalWrite(e, HIGH);// Indica porta como desligado
digitalWrite(f, HIGH);// Indica porta como desligado
digitalWrite(g, HIGH);// Indica porta como desligado
}
void dois() //Void que apresenta o número 2
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, HIGH);// Indica porta como desligado
digitalWrite(d, LOW);// Indica porta como ligado
digitalWrite(e, LOW);// Indica porta como ligado
digitalWrite(f, HIGH);// Indica porta como desligado
digitalWrite(g, LOW);// Indica porta como ligado
}
void tres() //Void que apresenta o número 3
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, LOW);// Indica porta como ligado
digitalWrite(e, HIGH);// Indica porta como desligado
digitalWrite(f, HIGH);// Indica porta como desligado
digitalWrite(g, LOW);// Indica porta como ligado
}
void quatro() //Void que apresenta o número 4
{
digitalWrite(a, HIGH);// Indica porta como desligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, HIGH);// Indica porta como desligado
digitalWrite(e, HIGH);// Indica porta como desligado
digitalWrite(f, LOW);// Indica porta como ligado
digitalWrite(g, LOW);// Indica porta como ligado
}
void cinco() //Void que apresenta o número 5
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, HIGH);// Indica porta como desligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, LOW);// Indica porta como ligado
digitalWrite(e, HIGH);// Indica porta como desligado
digitalWrite(f, LOW);// Indica porta como ligado
digitalWrite(g, LOW);// Indica porta como ligado
}
void seis() //Void que apresenta o número 6
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, HIGH);// Indica porta como desligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, LOW);// Indica porta como ligado
digitalWrite(e, LOW);// Indica porta como ligado
digitalWrite(f, LOW);// Indica porta como ligado
digitalWrite(g, LOW);// Indica porta como ligado
}
void sete() //Void que apresenta o número 7
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, HIGH);// Indica porta como desligado
digitalWrite(e, HIGH);// Indica porta como desligado
digitalWrite(f, HIGH);// Indica porta como desligado
digitalWrite(g, HIGH);// Indica porta como desligado
}
void oito() //Void que apresenta o número 8
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, LOW);// Indica porta como ligado
digitalWrite(e, LOW);// Indica porta como ligado
digitalWrite(f, LOW);// Indica porta como ligado
digitalWrite(g, LOW);// Indica porta como ligado
}
void nove() //Void que apresenta o número 9
{
digitalWrite(a, LOW);// Indica porta como ligado
digitalWrite(b, LOW);// Indica porta como ligado
digitalWrite(c, LOW);// Indica porta como ligado
digitalWrite(d, LOW);// Indica porta como ligado
digitalWrite(e, HIGH);// Indica porta como desligado
digitalWrite(f, LOW);// Indica porta como ligado
digitalWrite(g, LOW);// Indica porta como ligado
}
void loop() {
// Verifica se o botão PB1 foi pressionado
if (digitalRead(pb1) == LOW && state_pb1 == LOW) {
state_pb1 = HIGH; // Altera o estado do botão
x = 0; // Reinicia a contagem
} else if (digitalRead(pb1) == HIGH && state_pb1 == HIGH) {
state_pb1 = LOW; // Reseta o estado do botão quando ele for solto
}
// Se o botão foi pressionado, começa a contagem progressiva
if (state_pb1 == HIGH) {
// Incrementa x
x++;
// Verifica se x ultrapassou 9 e redefine para 0
if (x > 9) {
x = 0;
}
// Chama a função correspondente ao número atual em x
switch (x) {
case 0:
zero();
break;
case 1:
um();
break;
case 2:
dois();
break;
case 3:
tres();
break;
case 4:
quatro();
break;
case 5:
cinco();
break;
case 6:
seis();
break;
case 7:
sete();
break;
case 8:
oito();
break;
case 9:
nove();
break;
}
delay(1000); // Espera 1 segundo antes de incrementar novamente
}
}