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ß
Na das ist soch mal eine schnelle Feststellung :) z.B. sowas http://site.gravitech.us/Components/KEYPAD1-3x4/BasicSchematic.jpg
Kann es sein das es verschiedene Pads gibt, mit anderen Beschaltung. Hab so eins http://img.dxcdn.com/productimages/sku_117718_1.jpg
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
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
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.
@ 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ß
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
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.
Na das habe ich mir doch schon gedacht das es nicht aussreicht. Gut, werde mich dann an die Programmierung machen. Danke :-)
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ß.
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.