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
int x = 0; // Declara a variavel x e inicia ela como 0
int Controle = 0; // Declara a variavel controle e inicia ela como 0
#define port2 2
#define port3 3
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
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
pinMode(port2, INPUT);
attachInterrupt(digitalPinToInterrupt(port2), interrupcaoBotao1, FALLING);
pinMode(port3, INPUT);
attachInterrupt(digitalPinToInterrupt(port3), interrupcaoBotao2, FALLING);
Serial.println("Cronômetro ou Temporizador, de 9 segundos");
Serial.println("- Informe a letra 'c' para utilizar o display como cronômetro;");
Serial.println("- Informe a letra 't' para utilizar o display como temporizador.");
}
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() {
if (Controle == 1){
x = x +1;
}
// Chama a função correspondente ao número atual em x
switch (x) {
case 0:
zero();
break;
case 1:
um();
Serial.println(x);
break;
case 2:
dois();
Serial.println(x);
break;
case 3:
tres();
Serial.println(x);
break;
case 4:
quatro();
Serial.println(x);
break;
case 5:
cinco();
Serial.println(x);
break;
case 6:
seis();
Serial.println(x);
break;
case 7:
sete();
Serial.println(x);
break;
case 8:
oito();
Serial.println(x);
break;
case 9:
nove();
Serial.println(x);
break;
}
delay(1000); // Espera 1 segundo antes de incrementar novamente
}
void interrupcaoBotao1(){
Controle = 1;
}
void interrupcaoBotao2(){
Controle = 2;
}