Forum: Mikrocontroller und Digitale Elektronik 3x4 Keypad an I2C Beschaltung


von Sergej (Gast)


Lesenswert?

Hallo Leute,

ich stehe gerade mal wieder auf dem Schlauch.

Folgendes Problem:

Ich habe ein 3x4-KeyPad (membrane), entsprechend 4 Reihen und 3 Spalten.
Um die Pins auf dem µC zu sparen, habe ich diesen an einen I2C IC 
angeschlossen (PCF8574AP).

Das Auslesen des ICs ist kein Problem, alles wird über den I2C Bus 
richtig übertragen.

Schließe ich nun das KeyPad an, bekomme ich keine Signale an den 
richtigen Pins. Ich habe schon im INet einige Beschaltungen angeschaut 
und ausprobiert und auch selber einige ausprobiert, aber irgendwie habe 
entweder keine Signale oder die sind an den ganzen Reihen oder Spalten 
gleich.

1  2  3
4  5  6
7  8  9
*  0  #

z.B. 1, 2 oder 3 liefern am Bus 0x32.

Übersehe ich da was oder mache ich das gänzlich falsch?

Bin für jeden Tipp dankbar.

Gruß

von Selfcoder (Gast)


Lesenswert?

Sergej schrieb:
> oder mache ich das gänzlich falsch?

Ja. Zeig mal den Stromlaufplan.

von Sergej (Gast)


Lesenswert?

Na das ist soch mal eine schnelle Feststellung :)

z.B. sowas

http://site.gravitech.us/Components/KEYPAD1-3x4/BasicSchematic.jpg

von Sergej (Gast)


Lesenswert?

Kann es sein das es verschiedene Pads gibt, mit anderen Beschaltung.

Hab so eins
http://img.dxcdn.com/productimages/sku_117718_1.jpg

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Sergey,

sollte nicht das Kaypad, wie auf dem angehängtem Schema
funktionieren, d.h. Du musst das Kaypad mit den Outputs
des MC's aktiv ansteuern, um zu sehen, welche Leitung
das Signal, durch den entsprechenden Tastendruck zurückliefert.

Gruß
Markus
DL8MBY

von Karl H. (kbuchegg)


Lesenswert?

Sergej schrieb:
> Kann es sein das es verschiedene Pads gibt, mit anderen Beschaltung.
>

Natürlich.
Nur weil im PC Bereich jede Steckkarte und jeder Stecker normiert ist 
und nur in die dafür vorgesehene Buchse passt, bedeutet das nicht, das 
das immer und überall so ist. Ganz im Gegenteil ist das sogar meistens 
nicht so. Die PC Komponenten Hersteller waren es nur leid, dauernd mit 
Garantie-Ansprüchen konfrontiert zu werden, nur weil irgendein 
Hobby-Bastler wieder mal das Telefon an der Ethernet Buchse angesteckt 
hat.

Wenn du dich also strikt an einen Schaltplan hängst, aber ganz andere 
Bauteile hast, dann ist es eine gute Idee, im Vorfeld zu überprüfen, ob 
die Pinbelegung tatsächlich 1:1 identisch ist.

Bei einm Keypad ist das ja auch kein grosses Problem und mit einem 
Ohmmeter schnell gemacht.

: Bearbeitet durch User
von Selfcoder (Gast)


Lesenswert?

Sergej schrieb:
> Kann es sein das es verschiedene Pads gibt, mit anderen Beschaltung.
>
> Hab so eins
> http://img.dxcdn.com/productimages/sku_117718_1.jpg

Das ist aber immer noch nicht der Stromlaufplan, wie Du das verschaltet 
hast.

von Sergej (Gast)


Lesenswert?

@ Markus W.

Mit "j" bitte ;-)

Werde ich mal ausprobieren.

@Karl Heinz

Das Durchtesten der Leitungen ist schon längst gemacht, das ist ja auch 
der Grund, wieso ich mich im Forum erkundigen will. Mit dem Multimeter 
ist auch alles logisch, nur wenn ich es beschalte ist, ist es irgendwie 
nicht mehr.

@Selfcoder

Die Beschaltung ist ein höher gewesen.

Gruß

von Georg (Gast)


Lesenswert?

Sergej schrieb:
> Das Auslesen des ICs ist kein Problem, alles wird über den I2C Bus
> richtig übertragen.

Das reicht nicht. Ein Matrix-KB muss aktiv angesteuert werden, d.h. du 
musst eine Spalte auswählen mit Outputbefehlen, erst dann kannst du 
einlesen welche Taste in dieser Spalte gedrückt ist.

Georg

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Eigentlich steht alles zum PCF8574 schon im Datenblatt. Der Port ist ein 
Quasibiderektionaler 8-Bit Port und das Schreiben eines Ausgangs auf 
high aktiviert für eine I2C Clock Dauer einen starken Pullup.
Du schreibt also nach dem Adressbyte die gewünschte Spalte auf low und 
liest mit dem nächten I2C Kommando den Port und maskierst dir die Zeilen 
da raus.

Der PCF gibt dir nicht direkt irgendwelche gedrückten Tasten aus, das 
Entheddern der Matrix muss dein Steurrechner machen.

von Sergej (Gast)


Lesenswert?

Na das habe ich mir doch schon gedacht das es nicht aussreicht.

Gut, werde mich dann an die Programmierung machen.

Danke :-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Matthias S. schrieb:
> Quasibiderektionaler

Brabbel - sollte heissen Quasi-Bidirektionaler Port

von Peter D. (peda)


Lesenswert?

Es hängt vom Schaltplan ab.
D.h. die Zuordnung von D7..0 an Row3..0 und Col2..0.
Z.B. erst 0x70 hinschicken, rücklesen, dann 0x0F hinschicken, rücklesen.
Und dann die beiden Bytes auswerten wie bei direktem Anschluß.

von Selfcoder (Gast)


Lesenswert?

Sergej schrieb:
> @Selfcoder
>
> Die Beschaltung ist ein höher gewesen.

Das kann gar nicht sein. Du hast da einen Link zu einer Beschaltung 
gepostet, die Du irgendwo im Internet gefunden hast. Das hat garantiert 
nichts mit Deiner Schaltung zu tun, da Du ja einen PCF8574 benutzt.

von Sergej (Gast)


Lesenswert?

Das richtige Schlagwort ist schon von Georg gefallen.

Das in der Schaltung statt PCF8574 das Wort MCU steht tut der Sache 
keinen Abbruch. Und das war ja auch ein Beispiel wie ich meine 
Komponente beschaltet habe ;)

ROW über Widerstände (in meinem Fall 10kOhm) an VCC und an den IC
und COL direkt an den IC

von Selfcoder (Gast)


Lesenswert?

Sergej schrieb:
> Und das war ja auch ein Beispiel wie ich meine
> Komponente beschaltet habe ;)

Mich interessiert kein Beispiel, wie Du es beschaltet haben könntest, 
sondern wie Du es wirklich beschaltet hast.

von Sergej (Gast)


Lesenswert?

Das war eine der Beschaltungen die ich ausprobiert habe, mit einem 
PCF8574 und 3x4 KeyPad

von Sergej (Gast)


Lesenswert?

Aber gut es funktioniert jetzt wunderbar.

Ich dachte man bräuchte die Sachen nur beschalten und regelmäßig den Bus 
abfragen, aber nix da.

Danke für die Tips

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.