Código semafóro com bot para Pedestres - ajuda

Alguém poderia me ajudar nesse código para eu fazer o botão funcionar, plis

#include <Bounce2.h>

const int buttonPin = 14;

Bounce debouncer = Bounce();
Bounce botao(buttonPin);


void setup() {
   // Luzes do Semaforo ligadas aos pinos 12, 13, 05
   pinMode(5, OUTPUT); // Vermelho
   pinMode(13, OUTPUT); // Amarelo
   pinMode(12, OUTPUT); // Verde
   // Luzes do Semaforo do Pedestre ligadas aos pinos 10, 9
   pinMode(18, OUTPUT); // Vermelho do Pedestre
   pinMode(19, OUTPUT); // Verde do Pedestre
   // Botao do Pedestre
   pinMode(buttonPin, INPUT_PULLUP); // Botão do Pedestre para acionar a travessia
}
void loop() {
   // Verde para os automoveis
   digitalWrite(5, 0); // Verm
   digitalWrite(13, 0); // Amar
   digitalWrite(12, 1); // Verd
   digitalWrite(18, 1); // Vermelho para o Pedestre
   digitalWrite(19, 0); // Verde do Pedestre apagado
   // Verificar se apertou o botao
   int estadoBotao = buttonPin.read();

   if (estadoBotao == 1)
      {
      // Amarelo para os automoveis
      digitalWrite(5, 0);
      digitalWrite(13, 1);
      digitalWrite(12, 0);
      delay(1000);
      // Vermelho para os automoveis
      digitalWrite(5, 1);
      digitalWrite(13, 0);
      digitalWrite(12, 0);
      // Verde para os pedestres
      digitalWrite(18, 0);
      digitalWrite(19, 1);
      delay(150000); // Aguardar o Pedestre atravessar
      // Piscar o Vermelho do Pedestre 10 vezes
      digitalWrite(19, 0); 
      for (int i=1; i<=10; i++ )
          {
          // Piscando Vermelho para o pedestre
          digitalWrite(18, 1);
          delay(100);
          digitalWrite(18, 0);
          delay(100);
          }
      }
}

Seu tópico foi transferido para o local atual, pois é mais adequado.

Você também poderia dedicar alguns momentos para [aprender a usar o fórum] (How to get the best out of this forum).

Isso ajudará você a tirar o melhor proveito do fórum no futuro.

Obrigado

Bem vindo ao forum.

Existiam uma série de erros do uso da biblioteca <Bounce2.h>.

E existiam erros de logica também.

Veja se é este código que vc precisa e veja as diferenças com o seu código para entender o uso da biblioteca.

#include <Bounce2.h>
const int buttonPin = 14;
Bounce debouncer = Bounce();    //  <<< ------------------------
int estadoBotao;                //  <<< ------------------------
bool flag = false;              //  <<< ------------------------
//----------------------------------------------------------------
void setup() {
  // Luzes do Semaforo ligadas aos pinos 12, 13, 05
  debouncer.attach( buttonPin,  INPUT_PULLUP );     //  <<< ------------------------
  debouncer.interval(5); // interval in ms          //  <<< ------------------------
  pinMode(5, OUTPUT); // Vermelho
  pinMode(13, OUTPUT); // Amarelo
  pinMode(12, OUTPUT); // Verde
  // Luzes do Semaforo do Pedestre ligadas aos pinos 10, 9
  pinMode(18, OUTPUT); // Vermelho do Pedestre
  pinMode(19, OUTPUT); // Verde do Pedestre
  // Botao do Pedestre
  //pinMode(buttonPin, INPUT_PULLUP); // Botão do Pedestre para acionar a travessia
}
//----------------------------------------------------------------
void loop() {
  // Verde para os automoveis
  debouncer.update();                 //  <<< ------------------------
  digitalWrite(5, 0); // Verm
  digitalWrite(13, 0); // Amar
  digitalWrite(12, 1); // Verd
  digitalWrite(18, 1); // Vermelho para o Pedestre
  digitalWrite(19, 0); // Verde do Pedestre apagado
  // Verificar se apertou o botao
  estadoBotao =  debouncer.read();      
  if ( debouncer.changed() )            //  <<< ------------------------
  if (estadoBotao == 0)                 //  <<< ------------------------
  {
    flag = true;                        //  <<< ------------------------
  }
  if (flag == true)                     //  <<< ------------------------
  {
    // Amarelo para os automoveis
    digitalWrite(5, 0);
    digitalWrite(13, 1);
    digitalWrite(12, 0);
    delay(1000);
    // Vermelho para os automoveis
    digitalWrite(5, 1);
    digitalWrite(13, 0);
    digitalWrite(12, 0);
    // Verde para os pedestres
    digitalWrite(18, 0);
    digitalWrite(19, 1);
    delay(150000); // Aguardar o Pedestre atravessar
    // Piscar o Vermelho do Pedestre 10 vezes
    digitalWrite(19, 0);
    for (int i = 1; i <= 10; i++ )
    {
      // Piscando Vermelho para o pedestre
      digitalWrite(18, 1);
      delay(100);
      digitalWrite(18, 0);
      delay(100);
    }
    flag  = false;                  //  <<< ------------------------
  }
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.