#include <Bounce2.h>
// Define os pinos para cada segmento (a a g) e o pino do cátodo comum
const int segmentPins[8] = {0, 1, 2, 3, 4, 5, 6, 7};
const int commonCathodePin = 9; // Certifique-se de que este pino está correto para sua configuração
// Define os números para exibição no display de sete segmentos
const byte numbers[10] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};
enum Estado {
inicial,
pedestre,
vermelho,
verde,
amarelo
};
Estado estadoAtual = inicial;
const int buttonPin = A5; // Pino ao qual o botão está conectado
int buttonState;
Bounce debouncer = Bounce(); // Variável para ler o estado do botão
int lastButtonState = LOW; // Último estado lido do botão
unsigned long lastDebounceTime = 0; // A última vez que o pino de entrada foi alternado
unsigned long debounceDelay = 50; // O atraso de debounce; aumente se os pressionamentos ainda parecerem bouncy
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
debouncer.attach(buttonPin);
debouncer.interval(5); // 5 ms debounce time
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// Configura os pinos dos segmentos como saídas
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// Configura o pino do cátodo comum como saída
pinMode(commonCathodePin, OUTPUT);
}
void loop() {
debouncer.update();
int buttonValue = debouncer.read();
switch(estadoAtual){
case inicial:
break;
case pedestre:
break;
case pedestre:
break;
case pedestre:
break;
case pedestre:
break;
}
}