Erro "was not declared in this scope"



<br>[size=0.8em]Code: [url=https://arduinogetstarted.com/tools/arduino-code-highlighter]see how to post code[/url] [/size]<br>




---




```
[size=0.8em][nobbc]// Sensor infra-vermelho[/nobbc]
int[nobbc] infra_0 = A0;[/nobbc]
int[nobbc] infra_1 = A1;[/nobbc]
int[nobbc] infra_2 = A2;[/nobbc]
[nobbc]// Motor 0[/nobbc]
const int[nobbc] esq4 = 11;[/nobbc]
const int[nobbc] esq3 = 10;[/nobbc]
const int[nobbc] active1 = 13;[/nobbc]
[nobbc]// Motor 1[/nobbc]
const int[nobbc] dir1 = 8;[/nobbc]
const int[nobbc] dir2 = 9;[/nobbc]
const int[nobbc] active2 = 12;[/nobbc]

[nobbc]//sensor ultrassonico[/nobbc]

const int[nobbc] S0 = 7;[/nobbc]
const int[nobbc] S1 = 6;[/nobbc]
const int[nobbc] S2 = 5;[/nobbc]
 
 
void setupnobbc[/nobbc]
{
[nobbc]  [/nobbc]Serial[nobbc].[/nobbc]beginnobbc;[/nobbc]
[nobbc]  [/nobbc]Serial[nobbc].[/nobbc][color=#D35400]println/color;[/nobbc]
 
 [nobbc]//Define pinos de entrada do sensor infra vermelho[/nobbc]
 pinMode[nobbc](infra_0, [/nobbc]INPUT[nobbc]); [/nobbc]
 pinMode[nobbc](infra_1, [/nobbc]INPUT[nobbc]); [/nobbc]
 pinMode[nobbc](infra_2, [/nobbc]INPUT[nobbc]); [/nobbc]
 
 [nobbc]//motor 0[/nobbc]
 pinMode[nobbc](esq3, [/nobbc]OUTPUT[nobbc]);[/nobbc]
 pinMode[nobbc](esq4, [/nobbc]OUTPUT[nobbc]); [/nobbc]
 pinMode[nobbc](active1, [/nobbc]OUTPUT[nobbc]);[/nobbc]
[nobbc]//motor 1[/nobbc]
 pinMode[nobbc](dir1, [/nobbc]OUTPUT[nobbc]);[/nobbc]
 pinMode[nobbc](dir2, [/nobbc]OUTPUT[nobbc]);[/nobbc]
 pinMode[nobbc](active2, [/nobbc]OUTPUT[nobbc]);[/nobbc]
 
}

void loopnobbc[/nobbc]
{
 if[nobbc] ([/nobbc]digitalReadnobbc == [/nobbc]HIGH[nobbc]){ [/nobbc][nobbc]//Virar para direita[/nobbc]
   digitalWrite[nobbc](active1, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](active2, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir3, [/nobbc]LOW[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir4, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](esq1, [/nobbc]LOW[nobbc]);[/nobbc]
 digitalWrite[nobbc](esq2, [/nobbc]HIGH[nobbc]);}[/nobbc]
 if[nobbc] ([/nobbc]digitalReadnobbc == [/nobbc]HIGH[nobbc]){ [/nobbc][nobbc]//Virar para esquerda[/nobbc]
   digitalWrite[nobbc](active1, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](active2, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir3, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir4, [/nobbc]LOW[nobbc]);[/nobbc]
   digitalWrite[nobbc](esq1, [/nobbc]HIGH[nobbc]);[/nobbc]
 digitalWrite[nobbc](esq2, [/nobbc]LOW[nobbc]);}[/nobbc]
 if[nobbc] ([/nobbc]digitalReadnobbc == [/nobbc]HIGH[nobbc]){[/nobbc][nobbc]//desviar para um dos lados[/nobbc]
   if[nobbc] ([/nobbc]digitalReadnobbc == [/nobbc]HIGH[nobbc]){[/nobbc][nobbc]//Virar para direita[/nobbc]
   digitalWrite[nobbc](active1, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](active2, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir3, [/nobbc]LOW[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir4, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](esq1, [/nobbc]LOW[nobbc]);[/nobbc]
   digitalWrite[nobbc](esq2, [/nobbc]HIGH[nobbc]);}[/nobbc]
   if[nobbc] ([/nobbc]digitalReadnobbc == [/nobbc]HIGH[nobbc]){ [/nobbc][nobbc]//Virar para esquerda[/nobbc]
   digitalWrite[nobbc](active1, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](active2, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir3, [/nobbc]HIGH[nobbc]);[/nobbc]
   digitalWrite[nobbc](dir4, [/nobbc]LOW[nobbc]);[/nobbc]
   digitalWrite[nobbc](esq1, [/nobbc]HIGH[nobbc]);[/nobbc]
     digitalWrite[nobbc](esq2, [/nobbc]LOW[nobbc]);}[/nobbc]
 }

}

Está aparecendo o erro:
error: 'esq3' was not declared in this scope
error: 'esq4' was not declared in this scope
error: 'dir1' was not declared in this scope
error: 'dir2' was not declared in this scope

eu declarei, não entendo porque aparece esse erro. OBS: não deu para postar o código todo.
[/td][/tr][/table]
```

|

Na verdade vc só inicializou as variaveis. Acho deve-se inicializar dentro do loop tambem OU como elas estao como constantes, elas nao podem ser alteradas/reescritas

De onde copiaste o código?? Por vezes o código é copiado e trás coisas que não se vê, mas afectam a IDE. Quando isso acontece é melhor começar de novo e escrever o código à mão ou usar um editor de texto que não guarde os tipos de letra como o notepad no Windows.

Que placa tens escolhida na IDE? O código compila, mas só se escolheres a placa correcta... se tiveres a placa incorrecta escolhida, os pinos Ax não existem.

O código utiliza variáveis que não existem... dir3 e dir4 não foram criadas e como tal dão erro.

Ola,
copiei e colei esse código, e compilação reclamou que as seguintes variáveis não foram declaradas:
esq1, esq2, dir3 e dir4.
Declarei elas e compilou.
Ou seja, ainda faltam 4 variáveis para serem declaradas.

pksato:
Ola,
copiei e colei esse código, e compilação reclamou que as seguintes variáveis não foram declaradas:
esq1, esq2, dir3 e dir4.
Declarei elas e compilou.
Ou seja, ainda faltam 4 variáveis para serem declaradas.

Você pode por gentileza me mostrar o código em que declarou as variáveis?

const int infra_0 = A0;
// Sensor infra-vermelho
//int infra_0 = 0;
const int infra_1 = A1;
int infra_2 = A2;
// Motor 0
const int esq1 = 11;
int esq2 = 10;

int esq4 = 11;
int esq3 = 10;
int active1 = 13;
// Motor 1
int dir1 = 8;
int dir2 = 9;
int dir3 = 23;
int dir4 = 24;
int active2 = 12;

//sensor ultrassonico

const int S0 = 7;
const int S1 = 6;
const int S2 = 5;
  
  
void setup()
{
  Serial.begin(9600);
  Serial.println("Carregando...");
  
  //Define pinos de entrada do sensor infra vermelho
  pinMode(A0, INPUT);
  pinMode(infra_1, INPUT);
  pinMode(infra_2, INPUT);
  
  //motor 0
  pinMode(esq3, OUTPUT);
  pinMode(esq4, OUTPUT);
  pinMode(active1, OUTPUT);
 //motor 1
  pinMode(dir1, OUTPUT);
  pinMode(dir2, OUTPUT);
  pinMode(active2, OUTPUT);
  
}

void loop()
{
  if (digitalRead(infra_0) == HIGH){ //Virar para direita
    digitalWrite(active1, HIGH);
    digitalWrite(active2, HIGH);
    digitalWrite(dir3, LOW);
    digitalWrite(dir4, HIGH);
    digitalWrite(esq1, LOW);
  digitalWrite(esq2, HIGH);}
  if (digitalRead(infra_1) == HIGH){ //Virar para esquerda
    digitalWrite(active1, HIGH);
    digitalWrite(active2, HIGH);
    digitalWrite(dir3, HIGH);
    digitalWrite(dir4, LOW);
    digitalWrite(esq1, HIGH);
  digitalWrite(esq2, LOW);}
  if (digitalRead(infra_2) == HIGH){//desviar para um dos lados
    if (digitalRead(infra_0) == HIGH){//Virar para direita
    digitalWrite(active1, HIGH);
    digitalWrite(active2, HIGH);
    digitalWrite(dir3, LOW);
    digitalWrite(dir4, HIGH);
    digitalWrite(esq1, LOW);
    digitalWrite(esq2, HIGH);}
    if (digitalRead(infra_1) == HIGH){ //Virar para esquerda
    digitalWrite(active1, HIGH);
    digitalWrite(active2, HIGH);
    digitalWrite(dir3, HIGH);
    digitalWrite(dir4, LOW);
    digitalWrite(esq1, HIGH);
      digitalWrite(esq2, LOW);}
  }
 
}

Não sei se o código faz o que pretendes, mas compilou.