Kontakt Bounce, das schnelle Einschaltwechsel eines mechanischen Schalters aufgrund seiner physischen Bewegung, ist ein häufiges Problem in der Tastatur und anderen Schaltungseingänge. Wenn mehrere Schlüssel gleichzeitig gedrückt werden (eine häufige Situation), kann der Kontakt mit Sprung in jeder Taste dazu führen, dass mehrere falsche Signale registriert werden, was zu falschen Eingaben führt. Durch die Überwindung dieser Hardware- und Softwarelösungen sind dies erforderlich.
Hardware -Lösungen:
* Debouncing Circuits: Dies sind der häufigste Hardwareansatz. Sie glätten im Wesentlichen die schnellen Ein-Aus-Übergänge des Schalters. Es gibt verschiedene Typen:
* RC-Schaltungen (Widerstandskapazitor): Eine einfache RC-Schaltung fungiert als Tiefpassfilter. Der Kondensator berechnet langsam und ignoriert die schnellen Bounces nach der anfänglichen Tastendrucke effektiv. Die Zeitkonstante (RC) wird ausgewählt, um lang genug zu sein, um den Sprung zu filtern, aber kurz genug, um legitime Schlüsselpressungen nicht zu verzögern. Dies ist eine kostengünstige Lösung, aber ihre Wirksamkeit hängt von den Eigenschaften des Schalters ab.
* Schmitt Trigger: Diese Schaltung ist anspruchsvoller und hat einen Hystereseffekt. Es erfordert eine höhere Spannung, um sich einzuschalten, als auszuschalten, wodurch die durch Abprall verursachten kleinen Spannungsschwankungen ignoriert werden. Dies bietet ein saubereres Signal mit einem schärferen Übergang.
* Mikrocontroller mit internen Entschweigenfunktionen: Viele moderne Mikrocontroller verfügen über integrierte Entfouncing-Funktionen und vereinfachen das Hardwaredesign. Sie verwenden häufig Timer oder spezielle Eingangsbehandlung, um stabile Zustände zu erkennen.
* mechanische Verbesserungen: Obwohl es nicht ausschließlich eine Schaltungslösung ist, reduziert die Verwendung von mechanischen Schalter mit höherer Qualität mit besseren Kontaktkonstruktionen die Sprung. Diese Schalter sind oft teurer. Membran -Tastaturen, die keine physikalischen beweglichen Teile haben, leiden von Natur aus nicht unter Kontakt.
Softwarelösungen:
* Software -Debouncing: Auch beim Enttäuschen von Hardware könnte ein gewisses restlicher Sprung geblieben sein. Softwarealgorithmen können dies weiter mindern. Diese beinhalten typischerweise:
* Timer: Der einfachste Ansatz besteht darin, den Schlüsselzustand nach einer kurzen Verzögerung (z. B. 10-20 Millisekunden) zu überprüfen. Wenn der Staat nach dieser Verzögerung konsistent ist, wird der Schlüsseldruck als gültig angesehen.
* Zustandsmaschinen: Komplexere Zustandsmaschinen können komplexere Szenarien verarbeiten, z.
* Filteralgorithmen: Fortgeschrittene Software -Filtertechniken, wie z. B. bewegliche Durchschnittswerte oder mediane Filter, können das Eingangssignal glätten und die Auswirkungen verbleibender Spulen verringern.
gleichzeitige Tastatur überwinden:
Um mit mehreren Tasten zu handeln, die gleichzeitig gedrückt wurden (eine Schlüsselkombination, wie Strg+C), sind zusätzliche Überlegungen erforderlich, die über die einfache Entlassung einzelner Schlüssel hinausgehen.
* Matrix -Tastaturen: Anstelle von einzelnen Switches für jeden Schlüssel verwenden viele Tastaturen ein Matrix -Layout. Zeilen und Spalten werden gescannt, um zu bestimmen, welche Taste gedrückt wird. Dies ermöglicht von Natur aus die Erkennung gleichzeitiger Tastendrucke. Die Software muss dann die Kombination von aktiven Zeilen und Spalten interpretieren.
* Umfragen gegen Interrupts: Um mitzuwarten, werden die Schlüsselzustände regelmäßig überprüft, während unterrupt-gesteuerte Eingangseingangs jede Taste als Interrupt verarbeitet. Interrupts können zu einer verbesserten Reaktionsfähigkeit führen, erfordert jedoch möglicherweise eine sorgfältige Handhabung, um Rassenbedingungen zu verhindern, wenn mehrere Schlüssel gleichzeitig gedrückt werden.
* Schlüsselwarteschlangen/Puffer: Software verwendet häufig Warteschlangen oder Puffer, um Tastenanschläge vorübergehend zu speichern. Dies behandelt Situationen, in denen fast gleichzeitig mehrere Schlüssel gedrückt werden, um sicherzustellen, dass alle Tastendresseln in der richtigen Reihenfolge registriert sind.
In der Praxis kombiniert eine robuste Lösung häufig Hardware- und Software -Entfernung. Ein einfacher RC -Schaltkreis kann den größten Teil des Sprungs abwickeln, wobei Software alle restlichen Rauschen oder anspruchsvollere Timing -Aspekte abwickelt. Die Auswahl des Hardware- und Softwareansatzes hängt von den Einschränkungen, dem Budget und den Leistungsanforderungen der Anwendung ab. Für einfache Anwendungen kann eine Nur-Software-Lösung ausreichen. Für anspruchsvolle Anwendungen wie Spiele oder industrielle Kontrolle sind in der Regel robustere Hardware -Lösungen erforderlich.