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?
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.
Eine der einfachsten Möglichkeiten ist die Verwendung einer Tastaturmatrix wie dieser:
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.
Jippie