Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

B2 is not in this scope

eu entendi a lógica que o prof usou e eu tentei me desafiar a fazer o código sem olhar o dele. Eu tentei fazer uma função start que seta as portas e faz a piscada de led's um por um para realizar a "animação inicial" mas n deu certo com o erro de:

'B2' was not declared in this scope

eis o codigo

define int B1 = 2;

define int B2 = 4;

define int B3 = 7;

define int B4 = 8;

define int L1 = 10;

define int L2 = 11;

define int L3 = 12;

define int L4 = 13;

define int UMS = 1000;

define int MES = 500;

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

void loop() {

}

void start() { pinMode(B1, INPUT); pinMode(B2, INPUT); pinMode(B3, INPUT); pinMode(B4, INPUT);

pinMode(L1, OUTPUT); pinMode(L2, OUTPUT); pinMode(L3, OUTPUT); pinMode(L4, OUTPUT);

while(int pin = 1;, pin < 14; pin++) { digitalWrite(pin,HIGH); delay(UMS); digitalWrite(pin,LOW); delay(MES) } }

eu pensei que podia ser o define mas se esse é o caso ent pq a porta B1 n deu ruim. enfim me ajuda pf. Obrigado

1 resposta
solução!

Oi Daniel, tudo bem?

Perdão pela demora em lhe retornar. O erro no seu código está acontecendo por alguns fatores, listo os abaixo:

  • sintaxe do define
  • sintaxe do while
  • ausência de ponto e vírgula em alguns trechos

Quanto a sintaxe do define, o correto é:

#define nome_da_variavel valor_da_variavel

ou seja, não é necessário colocar igual e nem ponto e virgula no final.

Quanto a sintaxe do while, ela possui apenas uma condição. No caso do seu código, a mesma possui 3 condicionais dentro dela, o que se parece mais com a sintaxe do for:

Sintaxe while

while(condicao){
 ....
}

Sintaxe for

for(variavel = valor; variavel < valor_maximo; variavel++){
...
}

Deixo abaixo o completo código corrigido:

#define  B1 2
#define  B2 4
#define  B3 7
#define  B4 8
#define  L1 10
#define  L2 11
#define  L3 12
#define  L4 13
#define  UMS 1000
#define  MES 500

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

void loop() {
}

void start() { 
  pinMode(B1, INPUT); pinMode(B2, INPUT); 
  pinMode(B3, INPUT); pinMode(B4, INPUT);

  pinMode(L1, OUTPUT); 
  pinMode(L2, OUTPUT); 
  pinMode(L3, OUTPUT); 
  pinMode(L4, OUTPUT);

  for(int pin = 1; pin < 14; pin++) { 
    digitalWrite(pin,HIGH); 
    delay(UMS); 
    digitalWrite(pin,LOW); 
    delay(MES);
   } 
}

Qualquer dúvida estou a disposição. Espero ter ajudado. Abraços e bons estudos!