// Mapeamento dos I/Os
// Botões:
#define BT0 13
#define BT1 11
#define BT2 9
#define BT3 7
// LEDs
#define LED_VD 6
#define LED_AM 5
#define LED_VM 4
#define LED_AZ 3
// Variável de contagem
int contador = 0;
// Variáveis booleanas
bool stBT0, flag0;
void setup() {
// Habilitar comunicação serial
Serial.begin(9600);
// INPUT
// Botão ON ---> LOW
// Botão OFF ---> HIGH (resistor interno de PULLUP)
pinMode(BT0, INPUT_PULLUP);
pinMode(BT1, INPUT_PULLUP);
pinMode(BT2, INPUT_PULLUP);
pinMode(BT3, INPUT_PULLUP);
// OUTPUT
pinMode(LED_VM, OUTPUT);
pinMode(LED_VD, OUTPUT);
pinMode(LED_AM, OUTPUT);
pinMode(LED_AZ, OUTPUT);
}
void loop() {
stBT0 = digitalRead(BT0);
delay(10);
// Detectar a borda de descida
// (HIGH ---> LOW)
// OFF ---> ON
if(stBT0 == LOW && flag0 == LOW){
flag0 = HIGH;
Serial.println("O botão passou de OFF para ON");
}
// Detectar a borda de subida
// (LOW ---> HIGH)
// ON ---> OFF
if(stBT0 == HIGH && flag0 == HIGH){
contador++;
Serial.println(contador);
flag0 = LOW;
Serial.println("O botão passou de ON para OFF");
}
/*
if(stBT0 == LOW){ // Botão pressionado
contador++;
Serial.println(contador);
delay(500); // 0.5 s
}
*/
}
void loop(){
// ex3();
ex4();
}
void ex3(){
}
void ex4(){
}