PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Analoge Tastatur mit dem A/D Wandler



Movie85
15.07.2009, 15:28
Hallo,

ich hab gerade ein Projekt, in dem ich eine 3x3 Tastatur anschließen will.(oder 4x4, kommt drauf an)
Da ich nicht genügend PinPorts freihab, wollte ich eine Tastatur via Widerstands-Matrix erstellen.

Meine Frage is jetzt, wenn ich den AD wandler abfrage, wie bekomm ich dann möglichst Efficient die zugehörige Taste heraus? Ich muss gleichzeitig noch 4 7-Segment anzeigen Ansteuern und per RS232 senden.

Gruß,

Tom

radbruch
15.07.2009, 16:14
Hallo

Hier findest du die Grundlagen dazu: Tastaturmatrix (http://lmgtfy.com/?q=avr+tasten+matrix+adc+einfach)

Ein guter Einstieg ist z.B. diese Seite:
http://www.avr-asm-tutorial.net/avr_de/keypad/keyboard.html#adc

Gruß

mic

Che Guevara
15.07.2009, 16:16
Hallo Tom,

schau dir mal folgendes an:
http://www.rn-wissen.de/index.php/RN-Control
Die funktion Tastenabfrage() ermittelt, welche Taste gedrückt ist!

Ob das allerdings noch zuverlässig mit 9 bzw. 16 Tasten läuft, bezweifle ich, schon aufgrund von Temperatur-toleranzen! Wenn überhaupt, würde ich Widerstände mit 1% Abweichung nehmen!
Oder du verteilst das ganze auf 2 oder 3 Pins, dann wird die Abfrage aber schon etwas schwieriger!

Gruß

Chris

Besserwessi
15.07.2009, 17:42
Man kann oft das Auslesen von Tasten mit der Ansteuerung einer 7 Seg. Anzeige kombinieren. Im Extremfall braucht man da keine extra Pins. In der einfachen Lösung kann man sich zumindestens die Hälfe der Matrix sparen, bzw. mit den LEDs gemeinsam nutzen.

Movie85
16.07.2009, 12:57
Hi Leute,

danke für die schnellen Antworten!
Che Guevara hat einen super Link geschickt! Das ist genau das was ich gesucht habe. Danke!
Diese Seite wo das mit Assembler gemacht wurde kannte ich schon, daher hatte ich auch die Idee.

@Besserwessi:
Das hört sich interessant an. Wie willst du das anstellen? Meinst du in der Multiplex Routine auch noch den Port abfragen?

Gruß,

Tom

Besserwessi
16.07.2009, 18:06
Genau, in der Multiplexroutine für die LEDs auch noch die Tasten Abfragen. Wie man das genau macht, hängt davon ab wie die LEDs angeschlossen sind: direkt, mit treibern oder mit Decoder ?

In der Atmel Appl. Note 242 wird z.B. eine 4x4 Tastenmatrix und eine 7 Segmentanzeige (+Dezimalpunkt) zusammen beschrieben: Die Tastenmatrix hat einen Serienwiderstand je leitung und liegt zwischen den Anschlüssen für die Segmente. An die 8 Segmente geht also gerade die 4x4 Matrix.

Das einzige was mit so einer Matrix nicht gut geht, ist wenn mehr als eine Taste gleichzeitig gedrückt wird. Dafür müßte dann jeder Taster eine Diode kriegen.

Che Guevara
16.07.2009, 22:16
Hallo Tom,

freut mich, dass ich dir helfen konnte :-D
Aber:
Mich würde brennend interresieren, ob du es schon aufgebaut hast, wenn ja mit welchen widerständen und wieviele taster?!

Gruß
Chris

Besserwessi
17.07.2009, 09:10
Eine Tasttaturmatrix habe ich noch nicht zusammen mit 7 Segementen aufgebaut, nur einzelne Taster/Schalter (bis 6 Kontakte).

In der Atmel Appl. Note sind Widerstände von 2,7 K vorgeschlagen. Der Wert sollte aber unkritisch sein, von etwa 470 Ohm - 47 K sollte es auch gehen.

Solange bei der 7 Seg. Anzeige keine Stelle als aktiv ausgewählt ist, kann man die Segmentleitung auch praktisch uneingeschränkt nutzen. Durch die Widerstände vor den Tastern wird eine Rückwirkung von den Tasten auf die LEDs verhindert.