No exemplo o array de leds ficam todos dentro de numero de portas em sequencia (2,3,4,5) no meu está aleatório (12,3,2,7) dessar forma como faz para compreender esses números dentro da const "tamanho__sequencia"? Tentei outra forma, acho que foi mas ta gerando um delay muito grande na resposta do botão
#define LEDVERM 12
#define LEDAZ 3
#define LEDAM 2
#define LEDVERD 7
#define BOTAOVERM 10
#define BOTAOAZ 11
#define BOTAOAM 9
#define BOTAOVERD 5
#define INDEFINIDO -1
#define UM_SEGUNDO 1000
#define MEIO_SEGUNDO 500
#define TAMANHO_SEQUENCIA 13
int sequenciaLuzes[TAMANHO_SEQUENCIA];
void setup(){
Serial.begin(9600);
iniciaPortas();
iniciaJogo();
sorteiaCor();
}
void loop(){
for(int i = 0; i < TAMANHO_SEQUENCIA; i++){
sequenciaLuzes[i] = piscaLed (random(LEDAM, LEDVERM+1));
}
respostaJogador();
Serial.println(respostaJogador());
}
int piscaLed(int portaLed){
digitalWrite(portaLed, HIGH);
delay(UM_SEGUNDO);
digitalWrite(portaLed, LOW);
delay(MEIO_SEGUNDO);
return portaLed;
}
int respostaJogador(){
if(digitalRead(BOTAOVERM) == LOW){
return piscaLed(LEDVERM);
}
if(digitalRead(BOTAOAZ) == LOW){
return piscaLed(LEDAZ);
}
if(digitalRead(BOTAOAM) == LOW){
return piscaLed(LEDAM);
}
if(digitalRead(BOTAOVERD) == LOW){
return piscaLed(LEDVERD);
}
return INDEFINIDO;
}
void iniciaPortas(){
pinMode(LEDVERM, OUTPUT);
pinMode(LEDAZ, OUTPUT);
pinMode(LEDAM, OUTPUT);
pinMode(LEDVERD , OUTPUT);
pinMode (BOTAOVERM, INPUT_PULLUP);
pinMode (BOTAOAZ, INPUT_PULLUP);
pinMode (BOTAOAM, INPUT_PULLUP);
pinMode (BOTAOVERD, INPUT_PULLUP);
}
int sorteiaCor(){
return random(LEDVERM, LEDVERD +1);
}
void iniciaJogo()
{
for (int i = 0; i < TAMANHO_SEQUENCIA; i++){
sequenciaLuzes[i] = sorteiaCor();
}
}