Table of Contents
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;]
}
}