UIFlow-Eingabe für 16-Tasten mit Extend I/O

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

von Peter (peter@attraktor.org)

Bilder-Prefix: M5-Soft-16T0-...


Diese Seite ist noch im Entstehen.

M5-Soft-16T0-001.png

Dieses Programmungetüm ermöglicht es mit Blockly eine 4x4-Matrix-Tastatur abzufragen. Für die Verbindung zwischen der Tastatur und dem M5StickC dient die Unit Extend I/O.

Die Hardware

M5-Soft-16T0-002.png M5-Soft-16T0-004.png M5-Soft-16T0-005.png

Der Finger bei der Tastatur zeigt auf Pin 1 und der Finger an der Unit auf PIN0. Der Pin 1 der Tastatur wird mit PIN0, Pin 2 mit PIN1 u.s.w. der Unit verbunden.

So sieht mein Versuchsaufbau aus:

M5-Soft-16T0-007.png

Die Zahlen neben der Tastatur geben die PIN Nummern der Unit an mit denen die Reihen und Spalten verbunden sind.

Das Prinzip des Programms

Das Prinzip einer Matrixtastatur und deren Abfrage ist sehr anschaulich in der animierten Grafik von Kai Burghardt / CC BY-SA dargestellt:

FunctionalCircuitDiagramOfKeyboardNumPadScanningProcedure-small

Es wird ein Signal an eine Reihe gelegt und dann nachgesehen an welcher Spalte es wieder herauskommt. Wenn kein Signal herauskommt ist keine Taste gedrückt. Wenn ein Signal herauskommt kann es eindeutig durch die Reihen- und die Spaltennummer einer Taste zugeordnet werden.

Bei einer 4x4-Matrix-Tastatur sind 4 Rihen und 4 Spalten vorhanden. Ich habe die 4 Reihen auf PIN0 - PIN3 und die 4 Spalten auf PIN4 - PIN7 gelegt.

M5-UIF-16T0-010.png

Das Hauptprogramm und die Codeumwandlung

Init_Port

Hole_Taste

Hole_Wert

Ganze Zahlen werden ohne Nachkommastzellen angezeigt. Erst bei Eingabe des Kommas (*) werden auch Nachkommastellen angezeigt. Die Anzahl der Nachkommastellen muss leider fest vorgegeben werden.

Zeige_Display