Estou recebendo essa mensagem de erro no meu codigo e não sei o motivo gostaria de ajuda: O codigo em questão
C:\Users\rosec\OneDrive\Documentos\Arduino\teste\teste.ino: In function 'sequencia()':
C:\Users\rosec\OneDrive\Documentos\Arduino\teste\teste.ino:49:23: warning: iteration 4 invokes undefined behavior [-Waggressive-loop-optimizations]
sequenciaLuzes[i] = sorteiaCor();
~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
C:\Users\rosec\OneDrive\Documentos\Arduino\teste\teste.ino:48:18: note: within this loop
for (int i=0; i<=tamanhoSequencia; i++){
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\main.cpp: In function 'main':
C:\Users\rosec\OneDrive\Documentos\Arduino\teste\teste.ino:49:23: warning: iteration 4 invokes undefined behavior [-Waggressive-loop-optimizations]
sequenciaLuzes[i] = sorteiaCor();
^
C:\Users\rosec\OneDrive\Documentos\Arduino\teste\teste.ino:48:18: note: within this loop
for (int i=0; i<=tamanhoSequencia; i++){
^
O codigo em questão:
#define ledVerde1 11
#define ledAmarelo 10
#define ledVermelho 9
#define ledVerde2 8
#define botVerde1 5
#define botAmarelo 4
#define botVermelho 3
#define botVerde2 2
#define tamanhoSequencia 4
int sequenciaLuzes[tamanhoSequencia];
int rodada = 0;
enum ESTADOS{
usuarioRespondendo,
prontoProx,
fimJogoVitoria,
fimJogoPerda
};
void setup(){
iniciaPortas();
sequencia();
}
void iniciaPortas(){
pinMode(ledVerde1,OUTPUT);
pinMode(ledAmarelo,OUTPUT);
pinMode(ledVermelho,OUTPUT);
pinMode(ledVerde2,OUTPUT);
pinMode(botVerde1,INPUT_PULLUP);
pinMode(botAmarelo,INPUT_PULLUP);
pinMode(botVermelho,INPUT_PULLUP);
pinMode(botVerde2,INPUT_PULLUP);
Serial.begin(9600);
}
void sequencia(){
int porta = analogRead(A0);
randomSeed(porta);
for (int i=0; i<=tamanhoSequencia; i++){
sequenciaLuzes[i] = sorteiaCor();
}
}
int sorteiaCor(){
return random(ledVerde2,ledVerde1 + 1);
}
void loop(){
switch(estados()){
case usuarioRespondendo:
Serial.println("O usuario esta respondendo.");
break;
case prontoProx:
Serial.println("Pronto para a proxima rodada");
preparaProxRodada();
break;
case fimJogoVitoria:
Serial.println("Fim de Jogo, voce venceu");
break;
case fimJogoPerda:
Serial.println("Fim de Jogo, voce predeu");
break;
}
delay(500);
}
//estados-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
int estados(){
if (rodada < tamanhoSequencia){
return prontoProx;
}else{
return fimJogoVitoria;
}
}
void preparaProxRodada(){
rodada++;
piscaSEQUENCIAled();
}
//controle dos botões-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void controleBotoes(){
if (digitalRead(botVerde1) == LOW){
piscaLed(ledVerde1);
}
else if (digitalRead(botAmarelo) == LOW){
piscaLed(ledAmarelo);
}
else if (digitalRead(botVerde2) == LOW){
piscaLed(ledVerde2);
}
else if (digitalRead(botVermelho) == LOW){
piscaLed(ledVermelho);
}
}
//sequencia de leds-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void piscaSEQUENCIAled(){
for (int i=0; i<rodada; i++){
piscaLed(sequenciaLuzes[i]);
}
}
void piscaLed(int led){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(500);
}