Inhaltsverzeichnis:

Verwenden einer 4x4-Tastatur mit CircuitPython - Gunook
Verwenden einer 4x4-Tastatur mit CircuitPython - Gunook

Video: Verwenden einer 4x4-Tastatur mit CircuitPython - Gunook

Video: Verwenden einer 4x4-Tastatur mit CircuitPython - Gunook
Video: Course Lesson 5 of 10: Controlling RGB LED WS2812B Using Raspberry Pi Pico 2024, Juli
Anonim
Verwenden einer 4x4-Tastatur mit CircuitPython
Verwenden einer 4x4-Tastatur mit CircuitPython

Diese kostengünstige Tastatur bietet eine einfache Methode der numerischen Eingabe für Ihre CircuitPython-Projekte. Ich werde es mit einem Adafruit ItsyBitsy M0 Express verwenden.

Du wirst brauchen:

  • Tastatur - meine ist 4x4
  • ItsyBitsy M0 Express oder ähnliches Board
  • Mu Editor auf Ihrem Computer installiert
  • USB-Kabel zum Flashen des Codes

Schritt 1: So funktioniert die Tastatur

So funktioniert die Tastatur
So funktioniert die Tastatur

Die Tastatur verfügt über 16 einfache, langsam wirkende Blasenschalter, die in einem 4 x-Raster mit 8 Anschlüssen an der Unterseite angeordnet sind. Wenn wir von links von 0 bis 7 nummerieren, werden die Anschlüsse 0 bis 3 mit jeder der Reihen verbunden. Anschluss 0 an die obere Reihe und Anschluss 3 an die untere Reihe. Die Anschlüsse 4 bis 7 sind mit den Säulen verbunden, wobei der Anschluss 4 an der linken Säule und der Anschluss 7 an die rechte Säule angeschlossen ist. Jeder der 16 Schalter stellt eine Verbindung zwischen einer anderen Zeilen-/Spaltenkombination her. Wenn wir die Taste 7 drücken, wird die dritte Zeile mit der linken Spalte verbunden. Wir können spüren, ob die Taste 5 gedrückt wird, wenn ihre Zeile auf HIGH erhöht ist, und wir können ein HIGH in ihrer Spalte lesen. Dazu geben wir OUTPUT in die Zeilen und INPUT aus den Spalten.

Wir müssen jede Zeile der Reihe nach auf HIGH setzen, während die anderen Zeilen auf LOW sind, jede Spalte nacheinander lesen, bis wir einen HIGH-Eingang erhalten. Dies ist mit verschachtelten for-Schleifen leicht zu handhaben.

Wir müssen die Tatsache berücksichtigen, dass diese Blasenschalter ziemlich langsam wirken und ziemlich stark gedrückt werden müssen, um sie zu schließen. Das Scannen aller 16 Schalter auf diese Weise kann sehr schnell erfolgen, aber wir müssen wiederholt scannen, um einen Tastendruck aufzunehmen. Wir müssen auch mit einer kurzen Zeitverzögerung "entprellen", damit sich die Tasten nicht jedes Mal wiederholen, wenn wir sie drücken.

Da die Schalter ziemlich "matschig" sind, benötigen wir eine Rückmeldung an den Benutzer, um anzuzeigen, dass ein Tastendruck gelesen wurde. Die eingebaute LED blinkt bei jedem Tastendruck.

Schritt 2: Physische Verbindungen

Physische Verbindungen
Physische Verbindungen

Anschlüsse von links nach rechts auf KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 auf ItsyBitsy

D7 bis D11 sind als OUTPUTs ausgelegt, während A5 bis A2 als INPUTs mit PULLDOWN eingerichtet sind.

Der Code hat viele Kommentare und sollte recht einfach zu folgen sein.

Schritt 3: Wie Getkey() funktioniert

So funktioniert Getkey()
So funktioniert Getkey()

Diese Funktion durchsucht die Tastatur nach einem einzigen Tastendruck. Er überprüft jeden der Schlüssel nacheinander maximal 10 Mal schnell, um zu sehen, ob ein Schlüsselschalter geschlossen ist. Wird eine Taste gedrückt, wird der Tastenwert von links nach rechts von oben nach unten gezählt (0 …15) Beachten Sie die Werte für die untere Reihe: 14, 0, 15, 13 (Hex E, 0, F, D). Wenn keine Taste gedrückt wurde, wird -999 als Fehlercode zurückgegeben, der im Hauptprogramm leicht abgelesen werden kann. Die eingebaute LED blinkt, wenn ein Tastendruck als Benutzerrückmeldung aufgenommen wird. Dies läuft ziemlich schnell und die Entprellungswartezeit von 0,2 Sekunden wird nur verwendet, wenn eine Taste gedrückt wird.

Schritt 4: Getvalue(Ziffern)

Getvalue(Ziffern)
Getvalue(Ziffern)

Diese Routine liefert einen n-stelligen Wert von den numerischen Tasten. Es ignoriert die roten Tasten.

Dieser Python-Code kann leicht konvertiert werden, um auf einem anderen Gerät, z. B. einem Raspberry Pi, ausgeführt zu werden. Sie müssen wahrscheinlich nur die Pin-Setup-Zeilen oben im Skript ändern.

Bitte lassen Sie es mich wissen, wenn Sie den Code nützlich finden.

Bleiben Sie gesund und haben Sie Spaß!

Empfohlen: