Meu projeto tá normal, os leds acendem conforme eu aperto os botões, porém meu monitor serial tá mostrando o valor errado.
Esse é meu código:
#define LED_VERDE 2
#define LED_VERMELHO 3
#define LED_AZUL 4
#define LED_AMARELO 5
#define BOTAO_VERDE 8
#define BOTAO_VERMELHO 9
#define BOTAO_AZUL 10
#define BOTAO_AMARELO 11
#define INDEFINIDO -1
#define TAMANHO_SEQUENCIA 4
int sequenciaLuzes[TAMANHO_SEQUENCIA];
void setup(){
Serial.begin(9600);
iniciaPortas();
iniciaJogo();
}
void iniciaPortas(){
pinMode(LED_VERDE, OUTPUT);
pinMode(LED_VERMELHO, OUTPUT);
pinMode(LED_AZUL, OUTPUT);
pinMode(LED_AMARELO, OUTPUT);
pinMode(BOTAO_VERDE, INPUT_PULLUP);
pinMode(BOTAO_VERMELHO, INPUT_PULLUP);
pinMode(BOTAO_AZUL, INPUT_PULLUP);
pinMode(BOTAO_AMARELO, INPUT_PULLUP);
}
void iniciaJogo(){
sequenciaLuzes[0] = LED_VERDE;
sequenciaLuzes[1] = LED_VERMELHO;
sequenciaLuzes[2] = LED_AZUL;
sequenciaLuzes[3] = LED_AMARELO;
}
void loop(){
Serial.println(checaRespostaJogador());
}
int checaRespostaJogador() {
if(digitalRead(BOTAO_VERDE) == LOW) {
return piscaLed(LED_VERDE);
}
if(digitalRead(BOTAO_VERMELHO) == LOW) {
return piscaLed(LED_VERMELHO);
}
if(digitalRead(BOTAO_AZUL) == LOW) {
return piscaLed(LED_AZUL);
}
if(digitalRead(BOTAO_AMARELO) == LOW) {
return piscaLed(LED_AMARELO);
}
if(digitalRead(BOTAO_AMARELO) == HIGH) {
INDEFINIDO;
}
}
void piscaSequencia1(){
piscaLed(LED_VERDE);
piscaLed(LED_AMARELO);
piscaLed(LED_VERMELHO);
piscaLed(LED_AZUL);
delay(500);
}
void piscaSequencia2(){
digitalWrite(LED_VERDE, HIGH);
digitalWrite(LED_AMARELO, HIGH);
digitalWrite(LED_VERMELHO, HIGH);
digitalWrite(LED_AZUL, HIGH);
delay(1000);
digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AMARELO, LOW);
digitalWrite(LED_VERMELHO, LOW);
digitalWrite(LED_AZUL, LOW);
delay(500);
}
int piscaLed(int portaLed){
digitalWrite(portaLed, HIGH);
delay(1000);
digitalWrite(portaLed, LOW);
//delay(500);
return portaLed;
}
por algum motivo no meu monitor Serial só fica o número 1. E o numero do indefinido tá como -1.