1
resposta

[Dúvida] Erro: Compilation error: expected identifier before numeric constant

Está dando esse erro, mas na minha visão está tudo certo

#define LED_VERDE 2

#define LED_AMARELO 3

#define LED_VERMELHO 4

#define LED_VERMELHO2 5

#define UM_SEGUNDO 1000

#define MEIO_SEGUNDO 500

int sequenciaLuzes[] = [LED_VERDE, LED_AMARELO, LED_VERMELHO, LED_VERMELHO2];

void setup() { Serial.begin(9600); iniciaPortas(); }

void iniciaJogo(){

}

void iniciaPortas(){ pinMode(LED_VERDE , OUTPUT); pinMode(LED_AMARELO , OUTPUT); pinMode(LED_VERMELHO , OUTPUT); pinMode(LED_VERMELHO2 , OUTPUT); }

void loop() { //piscaLed(sequenciaLuzes[0]); }

void piscaSequencia1(){ piscaLed(LED_VERDE); piscaLed(LED_AMARELO); piscaLed(LED_VERMELHO); piscaLed(LED_VERMELHO2); delay(300); }

void piscaSequencia2(){ digitalWrite(LED_VERDE ,HIGH); digitalWrite(LED_AMARELO ,HIGH); digitalWrite(LED_VERMELHO ,HIGH); digitalWrite(LED_VERMELHO2 ,HIGH); delay(UM_SEGUNDO); digitalWrite(LED_VERDE ,LOW); digitalWrite(LED_AMARELO ,LOW); digitalWrite(LED_VERMELHO ,LOW); digitalWrite(LED_VERMELHO2 ,LOW); delay(MEIO_SEGUNDO); }

void piscaLed(int portaLed){ digitalWrite(portaLed ,HIGH); delay(200); digitalWrite(portaLed,LOW); delay(200); } `

1 resposta

Olá, Luiz

O erro "expected identifier before numeric constant" geralmente ocorre quando o compilador espera um identificador (como uma variável ou uma função), mas encontra algo diferente, neste caso uma constante numérica.

No seu caso, o erro está na linha onde você tenta inicializar o array sequenciaLuzes. Em C++, a sintaxe correta para inicializar um array é:

int sequenciaLuzes[] = {LED_VERDE, LED_AMARELO, LED_VERMELHO, LED_VERMELHO2};

Perceba que usamos chaves {} em vez de colchetes [] para inicializar o array. Então, a sua correção ficaria assim:

#define LED_VERDE 2
#define LED_AMARELO 3
#define LED_VERMELHO 4
#define LED_VERMELHO2 5

#define UM_SEGUNDO 1000
#define MEIO_SEGUNDO 500

int sequenciaLuzes[] = {LED_VERDE, LED_AMARELO, LED_VERMELHO, LED_VERMELHO2};

void setup() {
  Serial.begin(9600);
  iniciaPortas();
}

void iniciaJogo(){
  
}

void iniciaPortas(){
  pinMode(LED_VERDE , OUTPUT);
  pinMode(LED_AMARELO , OUTPUT);
  pinMode(LED_VERMELHO , OUTPUT);
  pinMode(LED_VERMELHO2 , OUTPUT);
}

void loop() {
  //piscaLed(sequenciaLuzes[0]);
}


void piscaSequencia1(){
  piscaLed(LED_VERDE);
  piscaLed(LED_AMARELO);
  piscaLed(LED_VERMELHO);
  piscaLed(LED_VERMELHO2);
  delay(300);
}

void piscaSequencia2(){
  digitalWrite(LED_VERDE ,HIGH);
  digitalWrite(LED_AMARELO ,HIGH);
  digitalWrite(LED_VERMELHO ,HIGH);
  digitalWrite(LED_VERMELHO2 ,HIGH);
  delay(UM_SEGUNDO);
  digitalWrite(LED_VERDE ,LOW);
  digitalWrite(LED_AMARELO ,LOW);
  digitalWrite(LED_VERMELHO ,LOW);
  digitalWrite(LED_VERMELHO2 ,LOW);
  delay(MEIO_SEGUNDO);
}

void piscaLed(int portaLed){
  digitalWrite(portaLed ,HIGH);
  delay(200);
  digitalWrite(portaLed,LOW);
  delay(200);
}

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software