www.mikrocontroller.net

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


Autor: Martin R. (cornholio)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

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

1k in Reihe zu den Tastern.

Autor: Andreas K. (derandi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin R. (cornholio)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.

Ungefähr so wie im Attachment?

Gruß,
Martin

Autor: Martin R. (cornholio)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas K. (derandi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: ichglaubsnet (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wozu transistor, mosfet?
du hast doch reichlich freie pins am PIC.

Autor: Martin R. (cornholio)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pete K. (pete77)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://sprut.de/electronic/pic/programm/tastlcd/tastlcd.html

Funktioniert bei mir schon in einigen Schaltungen problemlos.

Autor: Martin R. (cornholio)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.