Forum: Mikrocontroller und Digitale Elektronik 4x4 Keypad Matrix Frage, wie verstehe ich die Schaltung?


von Alejandro P. (alejo)


Angehängte Dateien:

Lesenswert?

Hallo,

zum lern zwecke (Tasten Eingabe, Codeschloss etc.)  möchte ich dieses 
4x4 Keyboard Matrix kaufen nun die Schaltung verstehe ich aber nicht 
ganz da PIN1 bis PIN4 Eingänge und PIN5 bis PIN8 Ausgänge sind.

Frage, warum Ausgänge?
Frage, wenn ich Taste 1 drucke wird PIN8 Aktiv und „fahre“ über 1x10K 
Widerstand, wenn ich die Taste 2 drucke ist genau so PIN8 -->1x10K oder? 
Wie kann ich dann unterscheiden ob Taste 1 oder 2 gedruckt würde?

Kann mich jemand helfen?
Gruß
Alejo

von Einer (Gast)


Lesenswert?

Du must je einen der Eingänge auf Masse legen.

z.b. pin 8 auf masse und schauen ob einer der pins 1 - 4 auch auf masse 
ist.

von Marc B. (belgo)


Lesenswert?

Also,

die Widerstände und die eingezeichnete Spannungsversorgung kannst du 
eigentlich weglassen wenn du das ganze mit einem µc betreiben möchtest.

Alle 8 Pins schließt du an einen Port des µc an, Pin1 bis 4 werden am µc 
als Ausgänge definiert und Pin 5 bis 8 werden als Eingänge definiert ( 
mit internen Pullups angeschaltet ).

Du kannst das ganze ganze auch ohne die internen Pullups betreiben, dann 
brauchst du allerdings auch wieder die 4 Wiederstände ( Externe Pullups 
).

Pin1 bis 4 werden gemultiplext, d.h. zuerst alle auf high seten und dann 
abwechelnd einen nach dem anderen auf low ziehen. ( Z.B. im 20ms Takt )

In dem Moment wo einer der Pins1 bis 4 auf low ist schaust du was sich 
am Eingang der Pins5 bis 8 tut ( ist eine Taste gedrückt wird der 
korrespondierenede Eingangspin auf low gezogen und du bekommst du das 
entsprechende Bitmuster an diesem Nibble zu sehen )

In der Praxis: Pin 3 ist gerade auf low, du hast Taste A betätigt, dann 
wird Pin 6 auf low gezogen.

( 1011 1011 )

So bekommst du immer ein anderes Bitmuster je nach dem welche Taste 
betätigt ist.

Gruss Marc

von Alejandro P. (alejo)


Lesenswert?

Hallo Marc

ok vielen Dank habe schon etwas verstanden!

von Gast1 (Gast)


Lesenswert?

> Pin1 bis 4 werden gemultiplext, d.h. zuerst alle auf high seten und
> dann abwechelnd einen nach dem anderen auf low ziehen.

Was passiert bei Betätigung von 2 Tastern? Richtig, Kurzschluss zwischen 
high und low.

von Marc B. (belgo)


Lesenswert?

Hallo,

> Was passiert bei Betätigung von 2 Tastern? Richtig, Kurzschluss zwischen
> high und low.

Also ich arbeite mit AVR Controllern, die haben da keine Probleme mit.
Habe schon viele Male so eine 4x4 oder 4x3 Tastatur in Projekte 
eingebunden ohne Probleme.

Du kannst sogar mit der ganzen Handfläche von mir aus auf die Tastatur 
drücken, da passiert nix.

Du wirst immer nur ein Bitmuster bekommen. Dieses vareiert natürluch 
jenachdem welche tasten du gleichzeitig drückst.

Betätigst du zb 9,0,A,B gleichzeitig bekommst du ein Bitmuster immer 
gleichbleibend. Egal welcher Pin auf low ist.

Betätigst du zb 3,7,A,E gleichzeitig bekommst du bei jedem low ziehen 
eines Pin immer ein anderes Bitmuster an Pin5 bis 8 zurück.

---> Ausserdem welcher Idiot drückt schon 2 Tasten, welchen Sinn macht 
das, das passiert doch höchstens unabsichtlich und warscheinlich sehr 
selten !!!!

Gruss Marc

von Peter (Gast)


Lesenswert?

Hallo,

ich habe zu diesem Thema noch ein paar kurze Fragen:

1: Sind die Eingänge 5-8 (wenn keine Taste gedrückt wird) prinzipiell 
HIGH?
Da diese ja laut Erklärung nicht beschaltet sind, solang keine Taste 
gedrückt wird und sie dann über die Pull-Up-Widerstände auf LOW gezogen 
werden.

Vielen Dank im Vorraus

von Harald (Gast)


Lesenswert?

Peter schrieb:
> Sind die Eingänge 5-8 (wenn keine Taste gedrückt wird) prinzipiell
> HIGH?

Wie kommst Du darauf?

Peter schrieb:
> Pull-Up-Widerstände auf LOW

Bist Du High?

von Peter (Gast)


Lesenswert?

Marc B. schrieb:
> In der Praxis: Pin 3 ist gerade auf low, du hast Taste A betätigt, dann
>
> wird Pin 6 auf low gezogen.
>
>
>
> ( 1011 1011 )

Warum Pin 6 dann low ist verstehe ich, aber warum sind die anderen high?

von Jens (Gast)


Lesenswert?

weil sie über den Pullup auf high gezogen sind, solange sie nicht über 
den Taster x auf low gezogen werden...

JJ

von Peter (Gast)


Lesenswert?

Ich stehe momentan total auf der Leitung.

Die Pull-Ups sind doch aber mit den Eingängen nicht verbunden außer eine 
Taste wird gedrückt. Oder lese ich die obige Schaltung falsch?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marc B. schrieb:
>> Kurzschluss zwischen high und low.
> Also ich arbeite mit AVR Controllern, die haben da keine Probleme mit.
Es gibt auch noch andere uCs...

> Du kannst sogar mit der ganzen Handfläche von mir aus auf die Tastatur
> drücken, da passiert nix.
Nur weil der uC nicht kaputtgeht, bedeutet das noch lange nicht, dass 
es ihm gut gefällt...
Richtigerweise schaltet man nur 1 Ausgang mit aktivem Pegel (hier 
sinnvollerweise mit einem aktiven Low-Pegel wegen der Pullups), und den 
Rest der uC-Pins auf hochohmig.

Und jetzt zur Funktion: an den Pins 5-8 hängen uC-Eingänge mit 
aktivierten Pullups.
Jetzt wird der Pin 1 auf Low gelegt, die Pins 2-4 werden auf Eingang mit 
Pullup geschaltet. Jetzt können die Tasten 1,5,9 und C eingelesen 
werden: je nach dem, welcher vom Pin 5-8 Low ist, wurde die 
entsprechende Taste betätigt.
Danach wird der Pin 2 auf Low gelegt, die Pins 1,3 und 4 auf 
Pullup-Eingang geschaltet. An den Pin 5-8 können jetzt die Tasten 2,6,0 
und D eingelesen werden.
Dann kommt der Pin 3 und danach noch der Pin 4.

Gleichzeitig sollte jedesmal an den Pins 1-4 kontrolliert werden, ob 
tatsächlich nur 1 Leitung auf Low ist (nämlich die, die gerade Ausgang 
sein darf). Sind nämlich 2 Leitungen auf Low, dann hast du (mindestens) 
eine Doppelbetätigung, evtl. sogar mehrere...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.