Forum: Mikrocontroller und Digitale Elektronik LCD + Tasten am selben Port


von Martin R. (cornholio)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>Wie kann ich verhindern,
>dass das Display in diesem Fall von den Tasten beeinflusst wird?

1k in Reihe zu den Tastern.

von Andreas K. (derandi)


Lesenswert?

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.

von Martin R. (cornholio)


Angehängte Dateien:

Lesenswert?

Hallo zusammen.

Ungefähr so wie im Attachment?

Gruß,
Martin

von Martin R. (cornholio)


Lesenswert?

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

von Andreas K. (derandi)


Angehängte Dateien:

Lesenswert?

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.

von ichglaubsnet (Gast)


Lesenswert?

wozu transistor, mosfet?
du hast doch reichlich freie pins am PIC.

von Martin R. (cornholio)


Lesenswert?

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

von Pete K. (pete77)


Lesenswert?

Du kannst auch das Display über einen Portextender PCF8574A an den I2C 
Bus hängen und Dir so viele Pins frei schaufeln.

von Peter D. (peda)


Lesenswert?

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

von Sven S. (stepp64) Benutzerseite


Lesenswert?

http://sprut.de/electronic/pic/programm/tastlcd/tastlcd.html

Funktioniert bei mir schon in einigen Schaltungen problemlos.

von Martin R. (cornholio)


Lesenswert?

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
Noch kein Account? Hier anmelden.