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

B2 not in 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 ?

Esta erro está acontecendo por alguns errinhos de sintaxe em seu código.

A sintaxe do #define é:

#define  B1 2

Ou seja, não é necessário colocar um sinal de igual e nem ponto e vírgula, como fora feito no seu código.

Outro ponto que ocasionará erro, será na função start(), uma vez que você declarou a palavra reservada while, mas utilizou a sintaxe bem similar a um for.

Segue abaixo o código com as correções.

#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  100
#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. Bons estudos!!!