Hallo zusammen, um I/O-Pins zu sparen, möchte ich an einem PIC-Port ein LCD sowie 5 Tasten anschließen. Der Port hat zuschaltbare interne Pull-Ups, sofern das hier relevant ist. Das LCD ist ein gängiges mit Enable-Signal, R/W, RS und 4 Daten-Leitungen. Wenn ich nun Enable einfach auf Low halte, so könnte ich in dieser Zeit die Leitungen als Input für 5 Tasten verwenden. Allerdings stehe ich vor zwei Problemen: 1. Wie soll ich die Taster anschließen? Einfach per Pull-Up oder Pull-Down an die Leitungen hängen, die ans LCD gehen, erscheint mir gefährlich für den Fall, dass während des LCD-Betriebs (Enable = High) eine der Tasten gedrückt wird. 2. Wie soll ich generell mit dem Problem umgehen, dass während der Ansteuerung des LCDs (Enable = High) der Anwender eine der Tasten drücken kann? Da die Tasten dazu genutzt werden sollen, das LCD zu bedienen, ist es doch wahrscheinlich, dass irgendwann eine Taste gedrückt wird, solange Enable auf High ist. Wie kann ich verhindern, dass das Display in diesem Fall von den Tasten beeinflusst wird? Die Suchfunktion hat mir bei diesem Problem nicht helfen können. Gruß, Martin
>Wie kann ich verhindern, >dass das Display in diesem Fall von den Tasten beeinflusst wird? 1k in Reihe zu den Tastern.
Taster ziehen den Eingang, der normale per Pull-up beschaltet ist, bei Betätigung auf GND. Wenn man verhindern will, das sie das tun, kann man den Tastern auf der anderen Seite bei LCD-Betrieb die Verbindung zu GND wegnehmen, zum Beispiel mit einem Transistor. Von Controller zu den Tastern noch eine (Schottky-)Diode in Reihe, damit man mit mehreren zusammen keinen Kurzschluss bauen kann und fertig.
Hallo. Bzw. ginge es auch mit einem PNP-Transistor und den Tastern zwischen Emitter und GND? Wenn ich dann die Basis an den gleichen Pin wie das Enable-Signal des LCD hängen würde, dann hätte ich doch - Enable = High: LCD wird angesprochen, Transistor sperrt (= Tasten aus) - Enable = Low : LCD deaktiviert, Transistor schaltet durch (= Tasten ein) Also mit einem einzigen Pin könnte ich zwischen LCD und Tastern umschalten. Oder geht hier meine (elektrotechnisch bescheidene) Fantasie mit mir durch? Gruß, Martin
Du könntest mit einem zweiten Transistor auch einfach den anderen Invertieren. Btw, möglich das am Transistor zusammen mit der Diode zuviel Spannung abfällt, ich würd hier jetzt einen dieser lustigen Logic-Level-MOSETS plazieren.
Hallo. ichglaubsnet schrieb: > wozu transistor, mosfet? > du hast doch reichlich freie pins am PIC. Da kommen noch so einige andere Sachen hin, so dass die Port-Pins am PIC nicht mehr reichen. LCD und Taster muss ich daher multiplexen. Elegant wäre dann natürlich eine Lösung, bei der ich mit einem einzigen Pin zwischen Display und Tasten umschalten kann (also wie oben mit dem "Enable"-Signal beschrieben). Gruß, Martin
Du kannst auch das Display über einen Portextender PCF8574A an den I2C Bus hängen und Dir so viele Pins frei schaufeln.
Vergiß komplizierte Schaltung, einfach nen Widerstand (4,7k) in Reihe zu jeder Taste und gut is. Sind die Pins Eingänge mit 50k Pullup, kann die Taste auf low ziehen. Wird das LCD geschrieben, sind die Pins aber Ausgänge und dann kümmern sie die 4,7k nicht mehr. Rücklesen vom LCD ist ja nicht nötig. Peter
http://sprut.de/electronic/pic/programm/tastlcd/tastlcd.html Funktioniert bei mir schon in einigen Schaltungen problemlos.
Hallo. Danke für die vielen Hinweise. Ich werde die "sprut"-Lösung probieren. Also im Prinzip Taster mit Widerstand in Serie - nur nicht gegen GND sondern einen weiteren I/O-Pin, so dass mit diesem Pin die Taster gesteuert werden können. Der Port-Extender wäre auch eine Möglichkeit, aber ich möchte dieses Mal das Multiplex-Verfahren probieren und ohne Extender auskommen. Gruß, Martin
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.