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;

}

}