#include <Arduino.h>
const int pinS0 = A0;
const int pinS1 = A1;
const int pinS2 = A2;
const int pinS3 = A3;
const int pinEnable = 37;
const int BUTTON_PIN_LED1 = 22;
const int BUTTON_PIN_LED2 = 23;
const int BUTTON_PIN_LED3 = 25;
const int BUTTON_PIN_LED4 = 24;
int pontuacao = 0;
bool jogoAtivo = true; // Variável para indicar se o jogo está ativo
void setup() {
Serial.begin(9600);
pinMode(pinS0, OUTPUT);
pinMode(pinS1, OUTPUT);
pinMode(pinS2, OUTPUT);
pinMode(pinS3, OUTPUT);
pinMode(pinEnable, OUTPUT);
digitalWrite(pinEnable, HIGH);
}
void loop() {
if (!jogoAtivo) {
return; // Se o jogo não estiver ativo, saia do loop loop()
}
// Inicializa uma variável para rastrear se um botão foi pressionado
bool botaoPressionado = false;
// Seleciona o LED 1
digitalWrite(pinS0, LOW);
digitalWrite(pinS1, LOW);
digitalWrite(pinS2, LOW);
digitalWrite(pinS3, LOW);
// Habilita o MUX
digitalWrite(pinEnable, LOW);
delay(10);
// Verifica se o botão correspondente ao LED 1 foi pressionado
if (digitalRead(BUTTON_PIN_LED1) == HIGH) {
if (pontuacao < 100) {
Serial.println("Certo");
pontuacao += 10;
Serial.print("Pontuação: ");
Serial.println(pontuacao);
botaoPressionado = true;
} else {
Serial.println("Pontuação ultrapassou 100 pontos. Jogo encerrado.");
jogoAtivo = false; // Define que o jogo não está mais ativo
}
delay(1000);
} else {
Serial.println("Você não pressionou o botão associado ao LED 1");
pontuacao = 0;
Serial.println("A pontuação foi resetada.");
Serial.print("Pontuação: ");
Serial.println(pontuacao);
delay(1000);
}
// Desabilita o MUX
digitalWrite(pinEnable, HIGH);
delay(1000);
// Seleciona o LED 2
digitalWrite(pinS0, HIGH);
digitalWrite(pinS1, LOW);
digitalWrite(pinS2, LOW);
digitalWrite(pinS3, LOW);
// Habilita o MUX
digitalWrite(pinEnable, LOW);
delay(10);
// Verifica se o botão correspondente ao LED 2 foi pressionado ou se algum outro botão foi pressionado
if ((digitalRead(BUTTON_PIN_LED2) == HIGH || !botaoPressionado) && pontuacao < 100) {
if (digitalRead(BUTTON_PIN_LED2) == HIGH) {
Serial.println("Certo");
pontuacao += 10;
Serial.print("Pontuação: ");
Serial.println(pontuacao);
} else {
Serial.println("Você não pressionou o botão associado ao LED 2");
pontuacao = 0;
Serial.println("A pontuação foi resetada.");
Serial.print("Pontuação: ");
Serial.println(pontuacao);
}
delay(1000);
} else {
Serial.println("Você não pressionou o botão associado ao LED 2");
pontuacao = 0;
Serial.println("A pontuação foi resetada.");
Serial.print("Pontuação: ");
Serial.println(pontuacao);
delay(1000);
}
// Desabilita o MUX
digitalWrite(pinEnable, HIGH);
delay(1000);
// Seleciona o LED 3
digitalWrite(pinS0, LOW);
digitalWrite(pinS1, HIGH);
digitalWrite(pinS2, LOW);
digitalWrite(pinS3, LOW);
// Habilita o MUX
digitalWrite(pinEnable, LOW);
delay(10);
// Verifica se o botão correspondente ao LED 3 foi pressionado ou se algum outro botão foi pressionado
if ((digitalRead(BUTTON_PIN_LED3) == HIGH || !botaoPressionado) && pontuacao < 100) {
if (digitalRead(BUTTON_PIN_LED3) == HIGH) {
Serial.println("Certo");
pontuacao += 10;
Serial.print("Pontuação: ");
Serial.println(pontuacao);
} else {
Serial.println("Você não pressionou o botão associado ao LED 3");
pontuacao = 0;
Serial.println("A pontuação foi resetada.");
Serial.print("Pontuação: ");
Serial.println(pontuacao);
}
delay(1000);
} else {
Serial.println("Você não pressionou o botão associado ao LED 3");
pontuacao = 0;
Serial.println("A pontuação foi resetada.");
Serial.print("Pontuação: ");
Serial.println(pontuacao);
delay(1000);
}
// Desabilita o MUX
digitalWrite(pinEnable, HIGH);
delay(1000);
// Seleciona o LED 4
digitalWrite(pinS0, HIGH);
digitalWrite(pinS1, HIGH);
digitalWrite(pinS2, LOW);
digitalWrite(pinS3, LOW);
// Habilita o MUX
digitalWrite(pinEnable, LOW);
delay(10);
// Verifica se o botão correspondente ao LED 4 foi pressionado ou se algum outro botão foi pressionado
if ((digitalRead(BUTTON_PIN_LED4) == HIGH || !botaoPressionado) && pontuacao < 100) {
if (digitalRead(BUTTON_PIN_LED4) == HIGH) {
Serial.println("Certo");
pontuacao += 10;
Serial.print("Pontuação: ");
Serial.println(pontuacao);
} else {
Serial.println("Você não pressionou o botão associado ao LED 4");
pontuacao = 0;
Serial.println("A pontuação foi resetada.");
Serial.print("Pontuação: ");
Serial.println(pontuacao);
}
delay(1000);
} else {
Serial.println("Você não pressionou o botão associado ao LED 4");
pontuacao = 0;
Serial.println("A pontuação foi resetada.");
Serial.print("Pontuação: ");
Serial.println(pontuacao);
delay(1000);
}
// Desabilita o MUX
digitalWrite(pinEnable, HIGH);
delay(1000);
// Verifica se a pontuação ultrapassou 100 pontos
if (pontuacao > 100) {
Serial.println("Pontuação ultrapassou 100 pontos. Jogo encerrado.");
jogoAtivo = false; // Define que o jogo não está mais ativo
// Aqui você pode adicionar qualquer ação adicional que deseje realizar após o término do jogo
}
}
Loading
cd74hc4067
cd74hc4067