#define CHAVE 12
#define LED 39
uint8_t statusChave;
uint8_t ultimoStatusChave = 0;
unsigned long tempoUltimoDebounce = 0;
unsigned long tempoDebounce = 50; //milisegundos
void setup() {
Serial.begin(115200);
pinMode(CHAVE, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
void loop() {
int leitura = digitalRead(CHAVE);
if (leitura != ultimoStatusChave){ //houve mudança.
tempoUltimoDebounce = millis(); //inicializa contador
}
if((millis()-tempoUltimoDebounce) > tempoDebounce){// estourou contador?
if (leitura != statusChave) { //houve mudança.
statusChave = leitura; //atualiza estado
Serial.printf("Chave em nível lógico %d\n", statusChave);
acionaLed(statusChave);
}
}
ultimoStatusChave = leitura;
}
void acionaLed(uint8_t status){
if(status){
digitalWrite(LED, HIGH);
}
else{
digitalWrite(LED, LOW);
}
}
Loading
franzininho-wifi
franzininho-wifi