Ingegneria civile e strutturale
Comprensione e realizzazione del debuglio in in ingressi di pulsante Arduino
Table of Contents
Quando viene premuto o rilasciato un pulsante, può generare più segnali a causa di vibrazioni meccaniche, causando falsi trigger. L'implementazione di debouncing aiuta a filtrare questi segnali indesiderati e garantisce un rilevamento accurato delle presse a pulsante.
Che cos'è Debouncing?
Il debouncing è il processo di eliminazione del rumore causato dal rimbalzo di contatto fisico di un pulsante. Quando viene premuto un pulsante, il contatto può connettersi e disconnettere rapidamente più volte prima di impostare. Senza debouncing, questi segnali rapidi possono essere interpretati male come più presse.
Metodi di debuncing
Ci sono due metodi comuni per implementare il debouncing in Arduino:
- Software Debouncing:[]] Invola l'aggiunta di un ritardo o il controllo dello stato del pulsante nel tempo per confermare un segnale stabile.
- Hardware Debouncing:[[]] Utilizza componenti elettronici come filtri RC o trigger Schmitt per smussare il segnale.
Implementazione del software di debug
Il software debouncing è comunemente usato nei progetti Arduino, che prevede la lettura dello stato del pulsante, in attesa di un breve periodo, e quindi la verifica se lo stato rimane invariato.
Esempio di codice snippet:
const int buttonPin = 2;
int buttonState = 0;
non firmata a lungo ilDebounceTime = 0;
unsigned long debounceDelay = 50;
loop divoidale() {]
int reading = digitalRead(buttonPin);
se (leggi!= PulsanteState) {[]
ultimoDebounceTime = millis();
]
se ((millis() - ultimoDebounceTime) > debounceDelay) {
PulsanteState = lettura;[]
- Sì.
- Sì.