//-------BIBLIOTECAS--------
#include <Button.h>
//---------DEFINIÇÕES---------
#define pinLedVermelho 2
#define pinLedAmarelo 0
#define pinLedVerde 4
#define pinBotao 16
//--------INSTANCIAS--------
Button botao(pinBotao);
//--------VARIAVEIS---------
unsigned long tempoAtual = 0;
unsigned long tempoAnterior = 0;
int posicao = 0;
bool ativacao = 1;
//------CONSTANTES----------
const unsigned long tempoEspera = 1000;
void setup()
{
pinMode(pinLedVermelho, OUTPUT);
pinMode(pinLedAmarelo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
pinMode(pinBotao, INPUT_PULLUP);
Serial.begin(115200); //Inicializa a comunicação Serial
botao.begin(); //Inicializa o objeto que criamos e chamamos de botao
}
void loop()
{
tempoAtual = millis();
if (tempoAtual >= tempoAnterior + tempoEspera)
{
Serial.println(posicao);
posicao++;
if (posicao == 3) posicao = 0;
tempoAnterior = tempoAtual;
}
if (botao.pressed()) ativacao = !ativacao;
if (ativacao)
{
switch (posicao)
{
case 0:
digitalWrite(pinLedVermelho, LOW);
digitalWrite(pinLedVerde, HIGH);
break;
case 1:
digitalWrite(pinLedVerde, LOW);
digitalWrite(pinLedAmarelo, HIGH);
break;
case 2:
digitalWrite(pinLedAmarelo, LOW);
digitalWrite(pinLedVermelho, HIGH);
break;
}
}
else
{
digitalWrite(pinLedVerde, LOW);
digitalWrite(pinLedAmarelo, LOW);
digitalWrite(pinLedVermelho, LOW);
}
} //Fim do loop