Andun
18.10.2007, 20:09
Hi
Ich hatte das Thema schon mal thematisiert, aber hier kommt nun eine vernünfige Frage: ^^
Ich möchte immer noch die Tastatur eines alten V-Tech Lerncomputers auslesen. Die Tastenbelegung habe ich schon analysiert und es handelt sich um eine einfache Matrix von 8x10 Tastern. (D.h. es befinden sich keine(!) Dioden oder ähnliches in der Tastatur.)
Um diese Tasten sinnvoll auszulesen habe ich mir folgende Lösung auf I2C Basis überlegt: Der I/O Portexpander Bausten PCF8574 von Phillips stellt die nötigen Ports zur Verfügung + 2 Eingänge am Atmega16 direkt. (Ja, der ist überdimensioniert, aber im moment egal)
Mein "Problem" ist nun, ob folgende Überlegung richtig ist, oder was ihr dazu sagt. Danke
In der Matrix werde ich nacheinander jede Zeile auf GND ziehen (der rest ist auf 5V) und teste dann ob ich an den Spalten irgendwo GND messe und nicht die 5V die ich durch einen Pull-Up an die Spalten anlege.
Falls mehrere Tasten gleichzeitig gedrückt werden, habe ich ein Problem, da ich diese nicht vernünftig auslesen kann, aber ich möchte wenigstens verhindern, dass wenn ich GND anlege an eine Zeile diese eine direkte Verbindung zu den 5V an einer anderen Zeile zustande bringt und dann Strom zieht, wie sau. (hoffentlich kann man mir folgen) Um diesem Problem entgegenzuwirken habe ich Dioden integriert.
(Speziell zu diesem Punkt hätte ich gerne eure Rückmeldung)
Wenn nun ganz normal eine Taste gedrückt wird, so wird eine Verbindung vom GND an den Zeilen über die Taste zur Spalte wo der PCF8574 als Eingang dient und auf GND gezogen wurde, vom PullUp weg. Muss in diese Schaltung ein Strom-begrenzender Widerstand vor, z.b., die Zeilen? (so hab ich es erstmal eingezeichnet.)
Also, falls ihr mir folgen konntet, hier der Schaltplan. (Vielleicht hilft der auch zum Verständnis) An die 10 Anschüße kommen jeweils die Spalten, bzw. Zeilen.
Meine Fragen:
1. Ist die Diode so richtig und sinnvoll? (Die Bezeichnung im Scheme sind irrelevant, da ich die erstbeste aus der Eagle Bibliothek genommen hab)
2. Ist der PullUp so richtig? Und wenn ja, wie groß sollte dieser dimensioniert sein?
3. Gleiche Frage für den Strombegrenzenden Widerstand.
Achja, die Leiterbahnen und Taster der Tastatur bieten selbst wohl auch einen großen Widerstand, also auch die Frage, ob dies evtl. schon selbst ausreichen könnte?
Vielen Dank
Andun
http://web3.vps101.serverservice.info/files/sch-ansteuerung_matrix.jpg
Ich hatte das Thema schon mal thematisiert, aber hier kommt nun eine vernünfige Frage: ^^
Ich möchte immer noch die Tastatur eines alten V-Tech Lerncomputers auslesen. Die Tastenbelegung habe ich schon analysiert und es handelt sich um eine einfache Matrix von 8x10 Tastern. (D.h. es befinden sich keine(!) Dioden oder ähnliches in der Tastatur.)
Um diese Tasten sinnvoll auszulesen habe ich mir folgende Lösung auf I2C Basis überlegt: Der I/O Portexpander Bausten PCF8574 von Phillips stellt die nötigen Ports zur Verfügung + 2 Eingänge am Atmega16 direkt. (Ja, der ist überdimensioniert, aber im moment egal)
Mein "Problem" ist nun, ob folgende Überlegung richtig ist, oder was ihr dazu sagt. Danke
In der Matrix werde ich nacheinander jede Zeile auf GND ziehen (der rest ist auf 5V) und teste dann ob ich an den Spalten irgendwo GND messe und nicht die 5V die ich durch einen Pull-Up an die Spalten anlege.
Falls mehrere Tasten gleichzeitig gedrückt werden, habe ich ein Problem, da ich diese nicht vernünftig auslesen kann, aber ich möchte wenigstens verhindern, dass wenn ich GND anlege an eine Zeile diese eine direkte Verbindung zu den 5V an einer anderen Zeile zustande bringt und dann Strom zieht, wie sau. (hoffentlich kann man mir folgen) Um diesem Problem entgegenzuwirken habe ich Dioden integriert.
(Speziell zu diesem Punkt hätte ich gerne eure Rückmeldung)
Wenn nun ganz normal eine Taste gedrückt wird, so wird eine Verbindung vom GND an den Zeilen über die Taste zur Spalte wo der PCF8574 als Eingang dient und auf GND gezogen wurde, vom PullUp weg. Muss in diese Schaltung ein Strom-begrenzender Widerstand vor, z.b., die Zeilen? (so hab ich es erstmal eingezeichnet.)
Also, falls ihr mir folgen konntet, hier der Schaltplan. (Vielleicht hilft der auch zum Verständnis) An die 10 Anschüße kommen jeweils die Spalten, bzw. Zeilen.
Meine Fragen:
1. Ist die Diode so richtig und sinnvoll? (Die Bezeichnung im Scheme sind irrelevant, da ich die erstbeste aus der Eagle Bibliothek genommen hab)
2. Ist der PullUp so richtig? Und wenn ja, wie groß sollte dieser dimensioniert sein?
3. Gleiche Frage für den Strombegrenzenden Widerstand.
Achja, die Leiterbahnen und Taster der Tastatur bieten selbst wohl auch einen großen Widerstand, also auch die Frage, ob dies evtl. schon selbst ausreichen könnte?
Vielen Dank
Andun
http://web3.vps101.serverservice.info/files/sch-ansteuerung_matrix.jpg