3x4 Keypad an I2C Beschaltung

Gast #4383399
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ß
#4383462
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.
Gast #4383476
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ß
Gast #4383482
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
(Firma: matzetronics) #4383489
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.
Gast #4383519
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.