Zurück zum Menü 5
5.0.7 Tastatur pollen

Erstellt ab 15.01.2022


Ich hatte gerade an meiner Bastel-Tastatur für meinen Laserplotter gebaut und das Ergebnis meinem Sohn vorgestellt. Er stellte die interessante Frage "und wie willst du das in den Controller einlesen ?".

Nun, wenn es mehrere Tasten sind (sagen wir mal so ab etwa 10 Stück), dann könnte man die Tastatur mit einer Matrix abfragen. Unter ca. 10 Tasten bringt das aber keine wirkliche Ersparnis an Leitungen.

Also habe ich mich entschlossen, jeden Taster einzeln abzufragen. Dazu führt jede Taste auf einen Eingang des Controllers und dieser Controller fragt dann einen Eingang nach dem anderen ab, ob dort eine "1" oder eine "0" anliegt.



Wie wir sehen, ist es auch möglich noch zusätzlich etwa ein Poti oder auch einen anderen analogen Wert einzulesen.

Polling bedeutet nun dies:

Es wird nun der Reihe nach jeder einzelne Eingang abgefragt und einer Variablen zugewiesen. Das kann man durch eine Reihe von If-Then-Befehlen erreichen. Es kann sofort eine jeweilige Aktion erfolgen, oder man liest erst alle Eingänge z.B. in ein Byte ein und aus dem Byte-Wert ergibt sich dann jeweils die Aktion. Da jeder If-Then-Befehl eine gewisse Zeit zur Ausführung benötigt, gilt das Polling als langsames Verfahren.

Hier gilt es abzuwägen, eventuell mit einem Interrupt zu arbeiten, wenn es zeitkritische Dinge zu tun gibt. Aber bei einer Tastaturmatrix mit Handbedienung ist bei 7 Tasten keinerlei Zeitnot.

Manchmal hat man aber nicht genügend Pins als Eingang zur Verfügung.

Um Leitungen und Pins zu sparen, kann man einen Spannungsteiler aus den Tasten verdrahten und nur noch die je nach Taste resultierende Spannung an einen ADC-Eingang geben. Bei dem vorliegenden Beispiel ergäbe sich vielleicht dieses Schaltbild:

 

Je nach gedrücktem Taster haben wir jetzt also einen anderen Spannungsteiler aktiviert. Aber auch hier muss gepollt werden, in dem man ADC1 und ADC2 nacheinander abfragt.

Der Nachteil bei dieser Schaltungsvariante ist, dass man die Schaltung ein mal kalibrieren muss. Jedem Tastendruck ist dann genau ein Analogwert zugeordnet. Zusätzlich empfhiehlt es sich, eine Art Hysterese einzubauen, falls die Umgebungstemperatur schwankt und sich somit die Analogwerte etwas verstellen könnten.
Jedem Taster wird dann dabei ein "Wertebereich" zugeordnet.



Ich hoffe, etwas Licht in die Abfrage von Tastern gebracht zu haben,

immer gute Ergebnisse wünscht





Nach oben            Zurück zum Menü 5