Benötige ich beim Erstellen einer Tastatur mit einem Mikrocontroller einen Eingangsstift für jede Taste?

Ich plane, V-USB mit einem ATMega8-Mikrocontroller zu implementieren. Ich interessiere mich für die Implementierung eines HID-Geräts; Genauer gesagt möchte ich versuchen, meine eigene einfache Tastatur mit 26 Tasten zu erstellen (jede entspricht einem Buchstaben des englischen Alphabets).

Das mag eine dumme Frage sein, aber brauche ich für jede Taste, die ich implementiere, einen Eingabe-Pin? Mit anderen Worten, muss ich einen Mikrocontroller verwenden, der mindestens 26 I/O-Pins hat? Oder gibt es eine andere Möglichkeit, dies zu tun?

Ziemlich ähnlich wie diese Frage: electronic.stackexchange.com/questions/37355/… Überprüfen Sie auch @stevenvh seine Ausarbeitung zu Charlieplexing. Wenn Sie 6 Eingänge haben, können Sie Charlieplexing verwenden 6 × ( 6 1 ) = 30 Schlüssel.

Antworten (2)

Die Idee, eine Matrix zu verwenden, ist sicherlich der richtige Weg. Ihre Matrix könnte auf andere Weise mit acht Eingangsreihen und vier Ausgangsleitungen zur Unterstützung von bis zu 32 Schaltern organisiert werden. Da Sie jeweils nur eine Eingangszeile erregen müssen, können Sie einen einfachen gemeinsamen 3-8-Decoder verwenden, um die Eingangszeilen wie unten gezeigt anzusteuern. Dies reduziert die Gesamtzahl der Mikrocontroller-Pins auf 7 Leitungen !!

Beachten Sie, dass es bei Verwendung eines 3-8-Decoders vom Typ 74HC138 erforderlich ist, die Logik so umzukehren, dass die Ausgangsspalten Pullup-Widerstände haben, die Diodenrichtung umgekehrt wird und die Software niedrige Werte (0) auf den Ausgangsleitungen sieht, wo erkannte Schalter wurden gesehen.

Vielen Dank an tcrosley für das Ausleihen einiger seiner wichtigsten Matrixgrafiken und an Philips Semiconductors für das logische Symbolbild ihres 74HC138-Teils.

Geben Sie hier die Bildbeschreibung ein

Schöne Ergänzung zu meiner Schaltung - nun, nicht wirklich meine, ich habe mir das Bild irgendwo im Internet "ausgeliehen", nachdem ich nach einer Tastaturmatrix gesucht hatte.
Cool, danke! Das eigentliche Konzept, das ich hatte, war, jede Taste zu einem kapazitiven Berührungssensor zu machen. Wäre das mit der Tastatur-Matrix-Methode noch möglich?
@capcom - Das gezeigte Schema ist für Schalter mit Kontaktschließungen mit niedriger Impedanz ausgelegt. Kapazitive Schalter sind eine ganz andere Art von Technologie. Schließkontaktschalter, einschließlich der äußerst kostengünstigen Drucktasten vom Typ TACT, sind der Typ für diese Matrixlösung.
Ich verstehe. Weißt du, wonach ich in Bezug auf niederohmige Kontaktschließungen suchen würde, wenn ich versuchen würde, einen möglichst dünnen Schalter herzustellen? Deshalb habe ich kapazitive Berührung als Lösung in Betracht gezogen. Danke noch einmal!
@capcom - Um eine Vorstellung davon zu bekommen, wie dünn eine Tastatur werden kann, sollten Sie eine Computertastatur auseinandernehmen, um zu sehen, wie sie im Inneren funktioniert. In Tastaturen der letzten Jahre haben sie drei Lagen Mylar-Material. Zwei Blätter in dem Stapel haben leitfähige Tinte, die auf ihre einander zugewandten Oberflächen gedruckt ist. Das dritte Blatt befindet sich zwischen diesen beiden anderen mit Löchern darin, wo sich jede Schlüsselstelle befindet. Durch das Zusammenpressen der beiden Außenbleche im Bereich des Lochs können sich die auf den Außenblechen befindlichen Leitlackpunkte durch das Loch kontaktieren!
@capcom, was meinst du genau mit "dünnster möglicher Schalter"? Ist es angesichts des freiliegenden Schalterprofils dünn, wie hoch es über der Frontplatte sitzt, oder der Profilhöhe über der Leiterplatte (da Sie das gesamte Gerät sehr dünn halten möchten)? Haben Sie Membranschalter in Erwägung gezogen?
Das ist eigentlich ziemlich cool! Ich frage mich nur, ob ich das zu Hause umsetzen könnte. Scheint nicht zu schwer zu sein, aber ich bin mir nicht sicher. Ich werde es prüfen. Bitte lassen Sie mich wissen, wenn Sie andere Methoden kennen, um die Wirkung eines Schalters bei einer minimalen Dicke zu replizieren. Danke.
@ icarus74 Ich meine wörtlich den dünnsten Schalter, den ich herstellen oder kaufen kann (zu einem angemessenen Preis). Die Höhe/Dicke bezieht sich auf die nicht gedrückte Position des Schalters über der Oberfläche, auf der er montiert ist. Danke für den Tipp mit den Membranschaltern. Ich habe sie mir angesehen, und sie scheinen dem gleichen Konzept zu folgen, wie es oben von Michael beschrieben wurde. Sieht vielversprechend aus, danke.
@capcom - Kurzer Kommentar zum typischen Membranschalter. Bei einer Implementierung als Matrix entfallen die Dioden an jeder Schalterposition. Dies ist in Ordnung, wenn Sie davon ausgehen, die Tastatur nur eine Position nach der anderen zu verwenden. Schließlich ist der typische Membranschalter nicht für schnelles Tippen geeignet. Die Dioden werden wesentlich, um eine gültige Erkennung jeder Taste bei jeder Abtastung zu ermöglichen, nicht um die "Phantomtaste" zu erkennen, wenn drei andere Schalter gleichzeitig gedrückt gehalten werden.

Eine der einfachsten Möglichkeiten ist die Verwendung einer Tastaturmatrix wie dieser:

Geben Sie hier die Bildbeschreibung ein

In Ihrem Fall könnten Sie es für 26 Tasten in einer 5 x 6-Matrix anordnen (erfordert 11 E / A-Pins). Dies ermöglicht tatsächlich 30 Tasten ohne zusätzliche Kabel. Eine 6x6-Matrix (nur ein Draht mehr) würde 36 Tasten zulassen, genug für AZ und 0-9.

Aufgrund des Quadrierungseffekts sparen Sie umso mehr Kabel, je größer die Tastatur ist. 100 Schlüssel benötigen nur 20 Kabel, sogar weniger als ein Kabel von jedem Ihrer ursprünglichen 26 Schlüssel.

Die Matrix-Idee funktioniert durch Scannen: Sie halten eine der I-Linien nacheinander hoch und scannen dann alle O-Linien für jede hoch gehaltene I-Linie. Sie erhalten ein hohes Eingangssignal nur auf einer der O-Leitungen, wenn nur eine der I-Leitungen hoch gehalten wird. Die Kombination isoliert einen der Schlüssel.

Pulldown-Widerstände an den "O"-Leitungen nicht vergessen.