// Mapeamento dos pinos de I/O
// INPUT
#define BT0 13
//const int BT0 = 13;
//int BT0 = 13;
// OUTPUT
// Variável de contagem
int contador;
// Variáveis booleanas
bool stBT0, flag0;
void setup() {
Serial.begin(9600);
// Pino em HIGH ---> botão desligado
// (devido ao resistor de PULLUP ---> interno)
// Pino em LOW ---> botão ligado
pinMode(BT0, INPUT_PULLUP);
}
void loop() {
// botão ON ---> LOW
// botão OFF ---> HIGH
stBT0 = digitalRead(BT0);
delay(10); // 0.01 s
// Detecção da borda de descida
// Transição de OFF ---> ON
if(stBT0 == LOW && flag0 == LOW){
Serial.println("O botão passou do OFF para ON!");
flag0 = HIGH;
}
// Detecção da borda de subida
// Transição de ON ---> OFF
if(stBT0 == HIGH && flag0 == HIGH){
Serial.println("O botão passou do ON para OFF!");
flag0 = LOW;
// Ação a ser tomada:
contador++;
Serial.print("Valor do contador: ");
Serial.println(contador);
}
}