PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastatur/LED-Matrix so richtig?



Jaecko
23.10.2006, 11:28
Hallo.

Wollte mal nachfragen, ob meine Theorie zum Anschluss einer
Matrixtastatur (z.b. an einen AVR) richtig ist.

Annahme: eine 3x3 Matrixtastatur (Nummernblock 1-9).
Die einzelnen Pins (AVR) nenn ich hier einfach mal r1, r2, etc.

r1: Reihe 1 = 1, 2, 3
r2: Reihe 2 = 4, 5, 6
r3: Reihe 3 = 7, 8, 9

s1: Spalte 1 = 1, 4, 7
s2: Spalte 2 = 2, 5, 8
s3: Spalte 3 = 3, 6, 9

r1-r3: Ausgänge
s1-s3: Eingänge

Die Pins s1-s3 mit je einem Widerstand auf 5V hochziehen.

Alle Ausgänge auf 5V / High legen.
Dann nacheinander r1, r2, r3 auf Low legen.

Abfrage mit If-Block:
If r1 = 0 AND s1 = 0 THEN Taste = 1
If r1 = 0 AND s2 = 0 THEN Taste = 2
If r1 = 0 AND s3 = 0 THEN Taste = 3
If r2 = 0 AND s1 = 0 THEN Taste = 4
If r2 = 0 AND s2 = 0 THEN Taste = 5
If r2 = 0 AND s3 = 0 THEN Taste = 6
If r3 = 0 AND s1 = 0 THEN Taste = 7
If r3 = 0 AND s2 = 0 THEN Taste = 8
If r3 = 0 AND s3 = 0 THEN Taste = 9


Dann die Frage der Ansteuerung einer LED-Matrix:

Alle 6 Pins sind Ausgänge; Anordnung der LEDs soll
gleich sein mit der der Tasten.
LED-Anoden (+) angeschlossen an r1-r3.
LED-Kathoden (-) angeschlossen über Widerstand an s1-s3

Alle LEDs aus: Alle Pins auf 0V oder alle auf 5V (egal?)

Soll z.B. LED 4 leuchten: r1 = 0, r2 = 1, r3 = 0, s1 = 0, s2 = 1, s3 = 1
Bei LED 9 müsste es dann r1 = 0, r2 = 0, r3 = 1, s1 = 1, s2 = 1, s3 = 0 sein.

(Wobei halt r1-r3 auch wieder nacheinander gesetzt werden)

Stimmt die Theorie hier soweit?


mfg
Jäcko

rXenon
23.10.2006, 13:56
Also das mit den Tastern müsste stimmen jedoch würde ich ein else vor den if-Abfragen schreiben (außer der ersten).

Bei den LEDs musst du Transistoren verwenden, da ein Ausgang keine 3 Leds verträgt, vermute ich mal.
Alle LEDs aus wäre dann: r1-r3 = 0 und s1-s3 = 1 .
Was aber egal wäre, wenn du jedes mal beim setzen einer LED alles veränderst.
Der Rest stimmt ebenfalls.