Zuerst schauen Sie sich den Schaltplan.
Was wir hier haben ist 9 Tasten und 6 Signalleitungen (3 Eingänge, 3 Ausgänge). Die Grundeinstellung ist in einem Raster die drei Eingabezeilen herab als Spalten (PIN0, PIN1 und PIN2), wobei die drei Ausgangsleitungen stoßen als Zeilen (PIN5, PIN3 und PIN4).
Jede Taste ist eine momentane anklicken, Schließer. Was passiert also wenn wir die Taste stellen sie eine Verbindung zwischen, dass Buttons ein- und Ausgabe, andere Weise dort ist keine Verbindung.
Der Schlüssel hier ist in der Software.
Die Software was ist zu tun, ist sehr schnell zwischen der ein- und Ausgänge für jede Kombination zu fegen. Ich werde darlegen, die Schritte 1-Eingang, und dann wiederholt es einfach die gleichen Schritte für jeden anderen Eingang.
Für die Eingabe auf PIN0
--PIN0, 1, 2, die als Ausgänge definiert
--Als Eingänge definiert PIN3, 4, 5
1. PIN0, PIN1 und PIN2 auf niedrig festgelegt
2. Stellen Sie PIN0 auf HIGH
3. Überprüfen Sie, ob PIN3 hoch ist oder gering, wenn hoch gehen Sie zur Funktion SW1
4. Überprüfen Sie, ob PIN4 hoch ist oder gering, wenn hoch gehen Sie zur Funktion SW4
5. prüfen Sie, ob PIN5 hoch ist oder gering, wenn hoch gehen Sie zur Funktion SW7
6. PIN0 auf niedrig festgelegt.
Dies wird mit dem einzigen Unterschiede wiederholen, werden die input-Pin auf hoch festgelegt ist, und die Namen der SW funktioniert sein werde.
So sehen Sie das Grundkonzept. Es stellt sich ein Eingang hoch, dann prüft jeder der Ausgänge für ein Signal. Wenn das Signal vorhanden ist, es geht auf diese Schaltfunktion. Wenn es ein Signal an alle Ausgangs-Pin findet, es setzt diesen Eingang auf LOW und setzt die nächste Eingabe zu hoch und erneut prüft jeden Ausgang. Dies wird weiterhin wie folgt zu fegen, bis ein Signal gefunden wird.
Anschließend können Sie die Funktionen, die es zu wechselt für Ihre Bedürfnisse anpassen. Die Beispiel-Skizze enthält lediglich eine serielle print-Anweisung drucken, welche Taste gedrückt wurde.
Sie können den Code/Schaltplan, allerdings Sie müssen anpassen. Hinzufügen von Schaltflächen, Tasten zu entfernen. Meine typische Verwendung ist all dies in einer Funktion platzieren und dann diese Funktion aufrufen, wenn das Programm erwartet, dass eine Taste gedrückt werden oder ein Tastendruck wartet.
Einige wichtigen Anmerkungen:
1. Sie können nur 1 Eingang HIGH gleichzeitig haben. Nicht nur werden die Ausgänge nicht richtig gelesen, sondern Sie können Kurzschluss Dinge, drückst du die richtigen Kombinationen.
2. Ich würde auch vorschlagen, indem Widerstände irgendwo auf die Linien. Sei es auf jeder der Eingänge oder ein auf jeder der Ausgänge, verhindert Ihre Mikrocontroller Ausbrennen
3. Sie können auch Dioden aus kurzschließen Kombinationen zu platzieren, aber sie sind nicht notwendig.
4. Sie können auch Pull-up Widerstände im System benötigen. manchmal tun Sie, manchmal nicht.
Ich werde auf hinzufügen, dass zusätzliche Schaltkreisoptionen und eine Probe Arduino sketch-dafür arbeiten.