Warning: Constant WP_PLUGIN_URL already defined in /home/.sites/338/site1783/web/blog/wp-content/plugins/ios-icons-for-wordpress/ios-icons.php on line 31 Matrix Keypad | blog.nitsch.me

Die Forderungs-Pyramide – Teil 2

techik : hardware : techik : microcontroller
Donnerstag, 27. Juni 2013

Wie versprochen hier der zweite Teil über das Forderungs-Pyramiden Projekt. Diesmal möchte ich etwas näher auf die Hardware eingehen, aus der das Eingabepanel für die Steuerung des Rapsberry Pi besteht.
Den Kern bildet ein Arduino Micro, ein Mikrocontroller Board basierend auf Atmels ATMega32U4.
Es bietet 20 I/O Pins, 32kByte Speicher und 2,5 kByte SRAM, 1 KByte EEPROM, sowie einen Micro-USB-Anschluss, der eine direkte serielle Kommunikation mit einem verbundenen Computer ermöglicht.
Die Stromversorgung kann entweder über den Micro-USB-Anschluss erfolgen oder über ein externes Netzteil. In diesem Fall wähle ich die Versorgung via USB durch den Raspberry Pi, an dem das Micro-Board angeschlossen wird, und der das Board mit 5 V versorgt. Sehr praktisch ist in diesem Zusammenhang auch der 3.3 V Ausgang des Arduino Micro, bereitgestellt über einen internen Spannungsregler des Boards. Er ermöglicht mir ohne Verwendung weiterer Komponenten (Spannungsregler) den Anschluss des RFID Breakout Boards, welches mit 3.3 V versorgt werden möchte. Einzig ein Levelshifter (Pegelwandler) wird notwendig. Dazu aber mehr in Teil 3.

Die Interaktion mit dem Panel erfolgt über ein numerisches 3×4 Keypad. Diese werden als Matrix Keypads ausgeführt. Das hat den Vorteil, dass man nur Zeilen und Spalten Pins benötigt, anstelle für jede Taste einen Pin. Man benötigt also nur 7 Pins für das Matrix Keypad, im Gegensatz zu 12 Pins, wenn jede Taste gesondert verdrahten wäre.
Wenn man kein Datenblatt zu dem Keypad hat, ist ein wenig Herumprobieren notwendig. Mit dem Durchgangsprüfer des Multimeters testet man die verschiedenen Kontaktkombinationen durch, während man die Tasten drückt und notiert sich, welche Taste welche Kontakte verbunden hat. Dadurch erhält man Aufschluss darüber, welche Kontakte für die Reihen und Spalten zuständig sind.

Schema eines Matrix Keypad sowie ein rudimentärer Arduino Sketch um gedrückte Tasten via Serial auszugeben

Schema eines Matrix Keypad sowie ein rudimentärer Arduino Sketch um gedrückte Tasten via Serial auszugeben

Zu Beginn werden alle Pins, die an den Zeilen hängen, als Eingang mit Pullup Widerstand konfiguriert. Dies sorgt dafür, dass die Eingänge einen definierten Zustand haben. Es liegen +5V an und beim Auslesen würde man HIGH zurück bekommen. Die Pins für die Spalten werden zunächst ebenfalls als Eingang mit Pullup definiert. Nun wird in Reihenfolge jeweils ein  Spalten-Pin kurz als Ausgang und auf LOW geschaltet und überprüft, ob einer der Zeilen-Pins beim Auslesen LOW zurück gibt. Aus der Information welche Spalte man gerade als Ausgang auf LOW gesetzt hat und der Zeile des Eingangs-Pins, der LOW zurück liefert, weiß man, welche der 12 Tasten gerade gedrückt ist.
Natürlich müsste man sich auch noch um das Entprellen der Tasten kümmern, eine kleine State Machine (Endlicher Automat) bauen um besser mit den wechselnden Zuständen der Tasten zurecht zu kommen, etc…
Wenn man so eine Abfrage von Matrix Keypads noch nie gebaut hat ist das sicherlich eine interessante Erfahrung und ein Spaß, aber Gott sei Dank gibt es im Arduino Playground eine Library die all diese Dinge bereits erledigt.

In Teil 3 geht es dann um das LCD Display und das RFID Break Out Board.

 

 

 

Warning: Attempt to read property "comment_content" on null in /home/.sites/338/site1783/web/blog/wp-includes/comment-template.php on line 1024
Kommentare deaktiviert für Die Forderungs-Pyramide – Teil 2