Avbouncing er en teknikk som brukes i mikrocontroller programmering for å sikre pålitelig lesing av knappinnganger. Når en knapp er presset eller frigitt, kan det generere flere signaler på grunn av mekaniske vibrasjoner, forårsaker falske utløsere. Implementering avbouncing bidrar til å filtrere ut disse uønskede signalene og sikrer nøyaktig deteksjon av knapptrykk.

Hva er utstøting?

Avbødning er prosessen med å eliminere støy forårsaket av den fysiske kontakt sprøyten på en knapp. Når en knapp trykkes på, kan kontakten raskt kobles og kobles fra flere ganger før avregning. Uten å avbouncere kan disse raske signalene feiltolkes som flere trykk.

Metoder for å avbouning

Det er to vanlige metoder for å implementere avbouncing i Arduino:

  • Programvareutvikling: Innbefatter å legge til en forsinkelse eller å sjekke knapptilstanden over tid for å bekrefte et stabilt signal.
  • Hardware Debouncing: bruker elektroniske komponenter som RC-filtre eller Schmitt utløser for å glatte ut signalet.

Utvikling av programvare

Programvareavbouncing brukes vanligvis i Arduino-prosjekter. Det innebærer å lese knapptilstanden, vente i en kort periode, og deretter bekrefte om tilstanden forblir uendret. Denne prosessen reduserer falske utløsere forårsaket av spretting.

Eksempelkodesnutt:

konst int-knappenPin = 2;]

int knappState = 0;

ikke-signert lang sisteDebounceTime = 0;]

]]

void loop() {

intellesing = digitalRead(buttonPin);]

hvis (lese != knappState) {]

sisteDebounceTime = millis();

}]

hvis ((millis() - lastDebounceTime) > fraskriveDelay) {]

knappStad = lesing;]

}

}