Table of Contents
Debouncing este o tehnică utilizată în programarea microcontrolerului pentru a asigura citirea fiabilă a intrărilor de butoane. Când un buton este apăsat sau eliberat, acesta poate genera semnale multiple din cauza vibrațiilor mecanice, cauzând declanșarea falsă. Punerea în aplicare a debușeului ajută la filtrarea acestor semnale nedorite și asigură detectarea exactă a preselor de butoane.
Ce este Debouncing?
Debouncing este procesul de eliminare a zgomotului cauzat de saltul contactului fizic al unui buton. Când un buton este apăsat, contactul se poate conecta rapid și deconecta de mai multe ori înainte de a se stabili. Fără destabilizarea, aceste semnale rapide pot fi interpretate greșit ca prese multiple.
Metode de debouncing
Există două metode comune de implementare a debuincingului în Arduino:
- Debouncing software: Implică adăugarea unei întârzieri sau verificarea stării butonului în timp pentru a confirma un semnal stabil.
- Hardware Debouncing: Folosește componente electronice, cum ar fi filtrele RC sau declanșează Schmitt pentru a netezi semnalul.
Implementarea software-ului Debouncing
Debuincing software este folosit în mod obișnuit în proiectele Arduino. Aceasta implică citirea stării butonului, de așteptare pentru o perioadă scurtă, și apoi verificarea dacă starea rămâne neschimbată. Acest proces reduce declanșatoarele false cauzate de viguros.
Exemplu de fragmentare a codului:
Const int butonPin = 2]
int butonState = 0;
nesemnată lastDebounceTime=0;
nesemnatădebounceDelay=50;
evită bucla() {
int reading = digitalRead (buton Pin);
dacă (citire!=butonState] {]
lastDebounceTime = millis ();
]
dacă ((millis() - lastDebounceTime) > debunceDelay) {
butonStatul = citire;
}
}