4x4 Matrix/Tastatur

matrix

Die Tastenmatrix gibt es ziemlich günstig aus China zu kaufen und ist oft nützlich  Projekten mit AVR Controllern. Das Große Problem ist oft nur, dass dann direkt acht IO Ports des AVR belegt sind. Daher habe ich seit kurzen eine andere Variante erprobt.

Man kann die Matrix über einen Spannungsteiler so verschalten, dass man nur einen Analogen Eingang des AVR benötigt um die Spannung zu messen die je nach gedrückter Taste unterschiedlich ist. Folgendes Schaltbild wird dies Veranschaulichen.

Die Spannung die über dem letzten Widerstand (R7) abfällt muss an den ADC Eingang angeschlossen werden. Die Spannungsversorgung für den Spannungsteiler der Tastaturmatrix sollte die Referenzspannung sein. Dies hat verschiedene Vorteile.

  • Man benötigt nur sieben und nicht acht Widerstände, da die Spannung nicht größer der maximal messbaren Spannung werden kann (VREF).
  • Der ADC Wert kann direkt in Zusammenhang mit der gedrückten Taste gebracht werden und muss nicht erst in ein Spannungswert umgerechnet werden.
  • Leichte Schwankungen bei der Referenzspannung sind egal, da der Spannungsteiler die Schwankungen auch durch macht.

Ich nutze als Spannung für AREF und den Spannungsteiler 3,3V. Damit habe ich sehr gute Ergebnisse erzielt. Die dazugehörigen Widerstandswerte kann man dem Schaltbild von oben entnehmen. Da die Spannungen und somit die ADC Werte auch bei den unteren Tasten der Matrix immer kleiner werden, wäre es sinnvoll Widerstände mit einer geringen Genauigkeit nehmen. 1% sollte genügen.

Zur Stabilisierung ist es denke ich noch ratsam einen 0,1µF Kondensator zwischen dem analogen Eingang und der Masse ein zu bauen.

Ein kleines Programm das ich exemplarisch für einen Atmega 16 geschrieben habe könnt ihr euch hier herunter laden oder von meinem Git Server auschecken. Die gedrückten Tasten werden als Test direkt über Usart (RS232) ausgegeben.

Falls ihr das Projekt auf einem anderen Controller nutzen wollt, dann müsst ihr darauf achten, dass der ADC unter adc_init richtig konfiguriert wird. Ich nutze mein kleines Atmega Board mit einem 16MHz Quarz. Bei anderen Frequenzen muss ggf. der ADC Teiler anders gesetzt werden.

2 Kommentare zu 4x4 Matrix/Tastatur

  1. Pingback: Matrix Tastatur | wer bastelt mit?

  2. Andreas sagt:

    Kleiner Tippfehler im letzten Link.

    Ansonsten eine klasse Info! Vielen Dank!!!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.