Parallele Schalter hinter Shift-Register

OP #2922394
Lesenswert?

Hallo,
ich habe einen 74HC595 Serial-To-Parallel-Shift-Register ( 
http://www.ti.com/lit/ds/symlink/sn74hc595.pdf ) und möchte diesen 
nutzen, um eine 8x8 Schalter-Matrix zu lesen (natürlich kommt auch ein 
Parallel-To-Serial schift register zum Einsatz, aber um mein Problem 
nachzuvollziehen nicht notwendig).

Einfache Situation (bedarf kein Schaltbild):

595 Chip, an zwei Ausgängen hängt je ein Schalter (um "Saft" auf die 
Spalten zu geben, um dann die "Zeilen mit dem pararlel to seriel chip 
auszulesen).

Ist je ein Schalter betätigt, auf dem der Ausgang ein HIGH hat, kommt 
ganz normal die Versorungsspannung an - logisch, gell?
Ist ein Ausgang auf HIGH (macht ja auch nur Sinn, ist ja eine 
Spalten/Zeilen-Abtastung), aber beide Schalter betätigt, kommt nur 
Versorungsspannung/2 an.

Oder noch einfacher ausgedrückt: Schaltet man Ausgang 1 auf HIGH(3.3V) 
und Ausgang 2 auf LOW(=0V), schließt beide kurz(= beide Schalter 
betätigt) und misst die Spannung(in der Mitte oder wo auch immer), 
kommen nur 1.6V an. Es scheint so, als fließe der Strom über Ausgang 2 
"weg". Aber laut Schaltbild des 595'ers sind doch hinter jedem Ausgang 
Dioden (=Einbahnstraßen) ?

Muss ich einen andere Chip verwenden?

Lieben Gruß,
Sebastian
OP #2922399
Lesenswert?

Hallo Treiber,
mir scheint, ich habe sie versehentlich als Dioden interpretiert. Ok, 
dann ist mir klar, wo der Strom "bleibt", er fließt scheinbar über GND 
zu 50% ab, weil es halt "keine" Diode ist.

Was kann ich tun, um mein Problem zu lösen? Als kleine Anmerkung: Bei 
meiner 8x8 Matrix muss ich multiple Schalterzustände auslesen können. 
Daher die "parallelen" Schalter.

Lieben Gruß,
Sebastian
Gast #2922423
Lesenswert?

Ist zwar nicht das, was ich mir unter Schalplan vorgestellt habe, aber 
zumindest kann man erkennen, daß du mit Schalter wirklich Schalter und 
keine zB Transistoren gemeint hast.

Mal unabhängig von der Folgeschaltung (die wir auch nicht kennen), 
brauchst du doch nur jeweils eine Diode vom 595er Ausgang zum jeweiligen 
Schalter einzubauen. Um den Spannungsverlust gering zu halten, benutze 
Schottky Dioden. Dann kann der Strom nicht mehr über den 595er 
abfließen.
Gast #2922437
Lesenswert?

Sebastian Loncar schrieb:

>
> Einfache Situation (bedarf kein Schaltbild):
>

Da irrst Du. Denk mal an die die Dir helfen wollen, die können im 
Schaltplan viel schneller erfassen was du möchtest, auch wenn der noch 
so einfach ist.
 Sprich du hast mehr die dein Anliegen bis zu ende lesen und auch 
verstehen, das bedeutet für dich mehr mögliche antworten.
 z.B. der 595 , nicht jeder hat gerade gestern damit gearbeitet, erkennt 
ihn jedoch, wenn er den Schaltplan sieht.

Zu deinem Problem Open Collector ist Dein Freund. Such einen chip der so 
einen hat. oder ich glaub den PCF8574. Du legst pins auf Masse oder 
schaltest sie auf input mit Pullup (falls der keinen intern hat mußt du 
extern pullups anlegen)
 + und - dzu haben führt sonst zum kurzschluß der ausgänge.
 Du willst mehrere Tastendrücke gleichzeitig erkennen? Oft reicht es ein 
paar wenigen tasten Sonderrechte zu geben das sie immer einwandfrei 
erkannt werden. z.B. shift,alt,ctrl taste auf der tastatur wird immer 
erkannt, während normale Buchstaben auf 2-3 stück begrenzt sind.
 Ansonsten gibt es auch fertige ics für tastaturabfrage
OP #2922928
Lesenswert?

Hallo,
also ich habe mir mal ein paar ULN2803's bestellt. Ich denke, dass die 
Sache damit erledigt ist.

Was mich jedoch stutzig macht: Wenn ich zwischen Ausgang und Schalter 
jeweils eine LED zwischenschalte, müsste ich mein Ziel doch eigentlich 
auch erreichen, weil eine LED ja auch eine Diode ist, nur leider klappt 
das irgendwie nicht. (die anderen Enden sind ja per 8x8 Matrix an einem 
Parallel2Seriel-Converter). 10K Widerstände sind natürlich dran.

@Manni:
Ich werde deinen Rat mit dem Schaltbild beherzigen. Im übrigen muss ich 
sämtliche Schalterkombinationen abfragen, da es Reedschalter unter einem 
Spielfeld sind - also nix mit Tastatur ;) Und mit dem I2C-Bus habe ich 
bisher noch nicht gearbeitet.

Lieben Gruß,
Sebastian
OP #2932568
Lesenswert?

Also ich habe es zuerst mit einem ULN2803 probiert, aber sobald ich ein 
zweites Leitungspaar anschließe, geht es nicht mehr. Nutze ich haber für 
jedes Leitungspaar(=Spalte) einen eigenen ULN2803, klappt es (ist 
natürlich eine Verschwendung). Aber immer noch nicht so recht.

Wie ich feststellte, musste ich "jeden" Schalter mit zwei Dioden 
versehen, ansonsten gab es immer noch Phantom-Keys. Das Problem war 
jedoch, ab einer bestimmten Anzahl an Dioden klappte nichts mehr, als ob 
die Dioden einen zu großen Widerstand hätten.

Ich habe es mit 3 verschiedenen Arten probiert:
http://de.farnell.com/jsp/search/productdetail.jsp?SKU=9843680
http://de.farnell.com/jsp/search/productdetail.jsp?SKU=1612341
http://de.farnell.com/jsp/search/productdetail.jsp?SKU=9843744

Als Spannung nutze ich 3.3V

Vielleicht habe ich die völlig falschen Dioden genommen, aber ich wüsste 
jetzt auch nicht, welche die richtigen wären (es gibt ja Unmengen an 
Dioden).

Ich nutze nun keine Matrix-Schaltung mehr, sondern lese jeden einzelnen 
Schalter mit PISO-Registern aus (Parallel-To-Serial), bei 64 Schaltern 
also 8 Stück. Dennoch frage ich mich, was ich bei der Matrixschaltung 
falsch gemacht habe.

PS: Das Bild ist mein derzeitiger Fortschritt (mit dem PISO-Registern). 
Ich habs nur hochgeladen, weil's so witzig aussieht ;)

Lieben Gruß,
Sebastian
Angehängte Dateien:
OP #2932575
Lesenswert?

Treiber, ich muss dir Recht geben, es ist für Aussenstehende wirklich 
umständlich überbracht. Nächste Mal werde ich es besser machen.

Da ich nun eh PISO-Register verwende, darf das Thema eigentlich als 
abgehakt gesehen werden.

Lieben Gruß,
Sebastian

(Mod.: Grafikauflösung im Beitrag 26.11.2012 06:22 reduziert)

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