Eingangs- Ausgangsstrom an Tastatur-Matrix

Gast #4261532
Lesenswert?

Hallo, eine kurze Frage.

Habe ich  eine übliche Tastaturmatrix-Schaltung (z.B. 
http://www.mikrocontroller.net/attachment/353/matrix.txt),  und die 
Spalten sind GPIO-Ausgänge, dann sehe ich zu, dass sequentiell immer nur 
eine einzige Spalte auf 0 gelegt wird.

Frage ich dann die vier Eingänge ab, sehe ich, welche Tasten in dieser 
Spalte gedrückt sind. Anschließend lege ich die Spalte wieder auf 1, und 
setze die nächste Spalte auf 0, um erneut die vier Eingänge abzufragen.

Eine Taste schließt also immer einen Ausgang mit einem Eingang kurz.

Wenn der Ausgang aber gerade auf 1 liegt (Spalte wird gerade nicht 
abgefragt), dann fließ bei gedrückter Taste ein Strom direkt vom Ausgang 
in den Eingang.

Sind die Eingänge immer so hochohmig, dass ein Ausgang davon nicht 
überlastet wird?

(Allgemeine Frage – speziell geht es mir um einen µC Atmel ARM mit 
Cortex M3).
Gast #4261904
Lesenswert?

Beginner schrieb:
> Sind die Eingänge immer so hochohmig, dass ein Ausgang davon nicht
> überlastet wird?

Gegenfrage: macht ein niederohmiger Eingang an einem Mikrocontroller 
Sinn?

Interessanter ist aber die Frage, was passiert bei einem 
Programmierfehler, wenn unbeabsichtigt beide Pins auf Ausgang geschalten 
sind und diese unterschiedliche Pegel haben ohne Widerstand dazwischen?
Gast #4262077
Lesenswert?

Bestromer schrieb:
> Gegenfrage: macht ein niederohmiger Eingang an einem Mikrocontroller
> Sinn?

Nein, macht natürlich keinen Sinn.

Insofern gäbe es also nur ein Problem, wenn zwei Taster der gleichen 
Zeile gleichzeitig gedrückt werden, und deren beide Spaltenausgänge 
unterschiedliche Ausgangspotentiale haben.

Also muss ich nach dem Lesen einer Spalte deren Ausgangspin immer wieder 
auf Eingang zurückschalten, bevor ich die nächste Spalte auf Ausgang und 
low lege.

Danke!
Gast #4262097
Lesenswert?

Beginner schrieb:
> Also muss ich nach dem Lesen einer Spalte deren Ausgangspin immer wieder
> auf Eingang zurückschalten, bevor ich die nächste Spalte auf Ausgang und
> low lege.

Du schaltest die Spaltentreiber ein und aus, lässt sie aber immer auf Lo 
- dann ist die Sache sicher.

Eine typische Matrix hat z.B. npn-Transitoren als Spaltentreiber, die 
jeweils eine Spalte mit GND verbinden, und die Zeilen sind jeweils mit 
einem Pullup-Widerstand und einem Eingang verbunden. Dann gibt es ein 
logisches Durcheinadnder, wenn mehr als eine Taste gedrückt ist (was man 
mit Dioden verhindern kann), aber keinen Kurzschluss. Entsprechend 
programmierst du deine Spalten-Ausgänge wie Open Collector Ausgänge.

Hallo Klugscheisser: natürlich kann man Spalten und Zeilen vertauschen, 
funktioniert entsprechend.

Georg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren