Debouncing este o tehnică utilizată în electronică digitală pentru a se asigura că doar un singur semnal este înregistrat atunci când este apăsat un comutator sau un buton. Comutatoarele mecanice generează adesea semnale multiple din cauza saltului de contact, care pot cauza erori în sistemele digitale. Implementarea debuincing ajută la îmbunătățirea fiabilității citirilor de intrare.

Switch-ul de înțelegere

Când un comutator mecanic este apăsat sau eliberat, contactele nu schimbă starea curat. În schimb, ei fac rapid și rupe contactul de mai multe ori înainte de a se stabili. Acest fenomen, cunoscut sub numele de salt, poate dura de la câteva microsecunde la milisecunde, ducând la mai multe semnale nedorite.

Tehnici practice de deblocare

Mai multe metode sunt folosite pentru a debusura intrări digitale, inclusiv hardware și abordări software. Deblocarea hardware implică adesea filtre RC sau declanseaza Schmitt, în timp ce debouncing software-ul folosește algoritmi de sincronizare pentru a ignora schimbările rapide de stat.

Implementarea software-ului Debouncing

Debuincing software-ul implică de obicei prelevarea de probe de intrare la intervale regulate și confirmarea schimbării de stat numai în cazul în care rămâne stabilă pe o anumită durată. Această metodă este flexibilă și ușor de implementat în codul microcontroler.

De exemplu, dacă un buton de intrare este citit la fiecare 10 milisecunde, sistemul poate verifica dacă intrarea rămâne în noua stare pentru cel puțin 50 milisecunde înainte de înregistrarea schimbării. Acest lucru reduce declanșatoarele false cauzate de salt.

Calculez timpul de debucare

Timpul de debușă depinde de caracteristicile comutatorului și cerințele sistemului. O abordare comună este de a selecta un interval de debușă între 5-20 milisecunde. Calculul implică măsurarea duratei maxime a saltului și adăugarea unei marje de siguranță.

De exemplu, dacă comutatorul sare până la 10 milisecunde, setarea unui timp de debușă de 20 milisecunde asigură detectarea fiabilă fără întârzieri semnificative.

  • Identifică durata maximă a saltului
  • Alege un interval de debuunce ușor mai lung decât timpul de salt
  • Punerea în aplicare a unor eșantioane periodice în cod
  • Confirm starea stabilă înainte de înregistrarea intrării