Das Entgraten ist eine Technik, die in der digitalen Elektronik verwendet wird, um sicherzustellen, dass nur ein einziges Signal registriert wird, wenn ein Schalter oder eine Taste gedrückt wird. Mechanische Schalter erzeugen oft mehrere Signale aufgrund von Kontaktsprung, was zu Fehlern in digitalen Systemen führen kann.

Switch Bounce verstehen

Wenn ein mechanischer Schalter gedrückt oder gelöst wird, ändern sich die Kontakte nicht sauber, sondern sie stellen den Kontakt schnell mehrmals ein und brechen ihn, bevor sie sich niederlassen. Dieses Phänomen, das als Bounce bezeichnet wird, kann einige Mikrosekunden bis Millisekunden dauern, was zu mehreren unerwünschten Signalen führt.

Praktische Entlarvungstechniken

Mehrere Methoden werden verwendet, um digitale Eingaben zu entlarven, einschließlich Hardware- und Softwareansätzen. Hardware-Debouncing beinhaltet oft RC-Filter oder Schmitt-Trigger, während Software-Debouncing Timing-Algorithmen verwendet, um schnelle Zustandsänderungen zu ignorieren.

Implementierung von Software Debouncing

Bei der Software-Debouncing-Methode wird die Eingabe in regelmäßigen Abständen abgetastet und die Zustandsänderung nur dann bestätigt, wenn sie über einen bestimmten Zeitraum stabil bleibt.

Wenn beispielsweise alle 10 Millisekunden eine Tasteneingabe gelesen wird, kann das System vor der Registrierung der Änderung überprüfen, ob die Eingabe mindestens 50 Millisekunden im neuen Zustand bleibt, wodurch Fehlauslöser durch Bouncen reduziert werden.

Berechnung der Debounce-Zeit

Die Entprellzeit hängt von den Schaltereigenschaften und den Systemanforderungen ab. Ein gängiger Ansatz ist die Auswahl eines Entprellintervalls zwischen 5 und 20 Millisekunden. Die Berechnung umfasst die Messung der maximalen Dauer des Entprellvorgangs und die Addition einer Sicherheitsmarge.

Wenn der Schalter beispielsweise bis zu 10 Millisekunden lang prallt, sorgt die Einstellung einer Debounce-Zeit von 20 Millisekunden für eine zuverlässige Erkennung ohne nennenswerte Verzögerung.

  • Maximale Abpralldauer identifizieren
  • Wählen Sie ein Debounce-Intervall, das etwas länger als die Bounce-Zeit ist
  • Durchführung periodischer Probenahmen im Code
  • Bestätigen Sie den stabilen Zustand vor der Registrierung von Eingaben