Forum: Mikrocontroller und Digitale Elektronik HD44780-LCD mit Keypad per Arduino an USB


von Peter K. (peter_kg)


Lesenswert?

Hallo Forum ich möchte solch ein HD44780-LCD mit 5 Tasten
per Arduino an einem Linux-PC per USB mit LCDProc betreiben:

https://www.ebay.de/itm/LCD1602-Blau-Keypad-Shield-fur-Arduino-Uno-Mega2560-HD44780-Modul/162611327454?hash=item25dc63f1de:g:KDkAAOSwjolcL0up

Der sog. FTDI-Bitbang-Modus (von LCDProc und Arduino unterstützt) geht 
leider nur in eine Richtung:
Vom PC zum Display, das an den Arduino angeschlossen ist. Für die Tasten 
benötige ich aber eine Methode mit Rückkanal.

FTDI-Bitbanging:
https://hackaday.com/2009/09/22/introduction-to-ftdi-bitbang-mode/

Habe ein wenig im LCDProc-Handbuch gesucht 
(http://lcdproc.sourceforge.net/docs/current-user.html) und nur eine 
brauchbare Methode gefunden: USB4All scheint eine LCDProc-Option zu 
sein, ohne seriellen/parallelen Anschluss in beide Richtungen zu 
kommunizieren. Leider weiß
ich nicht, wie man dem Arduino das passende LCDProc-Protokoll beibringt.
Alternativ einfach die USB4All-Platine nachzubauen ist ebenfalls 
problematisch: Ich weiß schlichtweg nicht, wie der Mikrocontroller zu 
flashen wäre. Ich besitze einen handelsüblichen USB-Serial-Adapter, um 
Arduinos zu flashen, die selbst keinen FTDI-Chip haben. Einen richtigen
Flash-Brenner besitze ich nicht und wäre mir zu teuer.

Die meisten anderen USB-Methoden, die im LCDProc-Handbuch erwähnt sind, 
kommen ebenfalls nicht in Frage: Entweder gibt es die Hardware nicht 
mehr, die Hardware ist unpassend (z.B. fertiges Display ohne Tasten) 
oder es werden keine / nicht genug Tasten unterstützt.
Das tollste wäre irgendeine Arduino/LCDProc-Lösung, wo ich nur noch 
einen Sketch für den Arduino anpassen muss. Kennt jemand so eine Lösung?

von Horst (Gast)


Lesenswert?

Warum nicht 'serialLCD' bei LCDproc und den Arduino einfach seriel 
ansprechen?

von Peter K. (peter_kg)


Lesenswert?

Weil der PC keine serielle Schnittstelle hat.

von Peter K. (peter_kg)


Lesenswert?

Hier ein Direktlink zum entscheidenden Abschnitt:
http://lcdproc.sourceforge.net/docs/current-user.html#hd44780-howto

> "In recent years, with with parallel ports and serial ports being
> declared
> legacy and on the demise on modern computers, the USB connection types
> get more
> important. Here are the USB connection types the HD44780 driver
> supports:"

Dann werden alle USB-Möglichkeiten aufgelistet. Leider sind die 
allermeisten unbrauchbar:

    * Pertelian X2040 LCD display: Existiert nicht mehr

   * bwctusb: BWCT USB LCD module: Irgendein Spezialmodul, bestimmt 
teuer

   * lcd2usb: Untertützt nur 2 Tasten. Allerdings will jemand mit einer 
Matrix-Schaltung bis zu 12 Tasten angesteuert haben. Ob der 
LCDProc-Treiber das aber deshalb unterstützt ist fraglich: LCD2USB ist 
eigentlich ein Hardware-Projekt und kein Treiber. Link: 
https://github.com/harbaum/LCD2USB
Der 12-Tasten-Held pflegt seine Seite nicht. Sie ist unerreichbar. 
Wayback-Archive-Link: 
https://web.archive.org/web/20160423103821/http://lists.omnipotent.net/pipermail/lcdproc/2010-February/013267.html


   * usbtiny: Irgendwas war auch hier subotpimal. Ich glaube auch hier 
gingen keine Tasten. Aufwändiger im Bau. Flasher nötig. Link: 
http://www.xs4all.nl/~dicks/avr/usbtiny/

   * uss720: Der Parallel-Adapter Belkin F5U002 kostet 50 Euro

   * lis2: LIS2 from VLSystem: Existiert nicht mehr

   * mplay: MPlay Blast from VLSystem: Existiert nicht mehr

   * ftdi: Bitbang-Modus unterstützt keine Tasten

   * usblcd: USBLCD from Adams IT Services (http://www.usblcd.de/): Da 
kommt eine Webseite für Laser-Technik

   * USB-4-all: Display connected to USB-4-all controller 
(http://www.sprut.de/): Evtl. eine Möglichkeit.

: Bearbeitet durch User
von Peter K. (peter_kg)


Lesenswert?

Ist ja enttäuschend, wie wenig Antwort hier kommt.
Habe zwischenzeitlich noch zwei weitere Seiten gefunden, die einen 
interessanten Ansatz bieten:

-Das Projekt VirtualGPIO (https://github.com/BLavery/virtual-GPIO) 
erlaubt es, einen Arduino als GPIO-Erweiterung für den PC zu nutzen. 
Leider ist alles in Python (und nicht C). Außerdem wurde das Projekt 
offiziell beendet, weil zu wenige Leute sich dafür interessierten. Laut 
Autor sind die Bibliotheken aber alle funktionstüchtig und 
download-fähig.

-Das Projekt GPIO-Expander 
(https://www.raspberrypi.org/blog/gpio-expander/) bietet ebenfalls eine 
GPIO-Erweiterung für den PC, aber diesmal mit dem Raspberry-Zero.

In beiden Fällen bräuchte ich aber immernoch einen Weg, mit LCDProc zu 
kommunizieren. Irgendwelche Ideen?

: Bearbeitet durch User
von Karl M. (Gast)


Lesenswert?

Peter K. schrieb:
> Ist ja enttäuschend, wie wenig Antwort hier kommt.

Dann wird es wohl nichts aus der Box geben!

Also selbst ist der Mann/Frau und ran an die Tastatur.

von Christian M. (Gast)


Lesenswert?

Hallo Peter,

mir fallen da grad 2 Sachen ein:

Dieses LCDProc scheint ja veraltet zu sein und unterstützt fast nur 
veraltete Hardware. Da gibt es doch bestimmt Alternativen, schau Dich 
mal um!

Der USB4all funktioniert, ich brauche den öfters. Da könnte ich Dir ein 
18Fx550 programmieren! Ist zwar auch schon ein bisschen älter und Sprut 
hat schon länger nichts mehr dran gemacht. Und die Kontroller sind auch 
nicht die billigsten, ~5€

Und sonst wie schon geschrieben: Selber machen! Ist ein interessantes 
Projekt!

Gruss Chregu

von Peter K. (peter_kg)


Lesenswert?

Danke. Immerhin moralische Unterstützung.

Als Alternativen zu LCDProc habe ich bisher LCD4Linux und LCD-Linux 
gefunden:

Forum für LCD4Linux:
https://www.vuplus-support.org/wbb4/index.php?thread/25655-lcd4linux-thread%C3%BCbersicht/&s=7232bff83c221a63b6b48c10ed7627c6ff7ae7fa

LCD-Linux-Homepage:
http://lcd-linux.sourceforge.net/

Es gibt, glaube ich, noch ein drittes kleines Projekt, das ich aber 
gerade nicht finde.

Mir scheint LCDProc das am weitesten entwickelte zu sein. Hinzu kommt 
ein weiteres Problem: Ich möchte das LCD in einem HTPC verbauen. Das 
heißt, ich bin darauf angewiesen, dass es ein Kodi-Plugin für die 
LCD-Software gibt. Für LCDProc gibt es ein solches Plugin. Bei den 
anderen weiß ich es nicht.

Ich werde noch ein bißchen weiter suchen und mich melden, wenn ich was 
Neues habe.

von Karl M. (Gast)


Lesenswert?

Hallo,

spannend wäre noch zu wissen, warum?
"Ich möchte das LCD in einem HTPC verbauen."

Meine Server brauchen keine Anzeige(n), die stehen oder liegen im 
dunkeln und arbeiten vor sich hin.

Ich will das mal anders Beschreiben, ich montiere gerade ein 
Spannungsanzeige an mein 12V Fahrtlicht, dass mir immer den Ladezustand 
- über die Ausgangsspannung - eines LiFePO4 Akku auf 1mV Auflösung 
anzeigt.
Die 5 stellige Anzeige gab's mal fertig bei eBay.

In deinem Fall würde ich eine serielle Schnittstelle nutzen, über die 
Daten gesendet und empfangen werden kann.

Der PC wäre der Master, das Display + Taster der Slave.
So man an ein einfaches Abfrageprotokoll implementieren kann, dass Daten 
auf das LCD schreibt und auch Taster-Events (wurde gedrückt ! oder/ und 
losgelassen !) zurück liefert.
Der Rest wäre dann in deiner PC Software zu kodieren.

von Hugo (Gast)


Lesenswert?

Aktuelle Computer haben keine serielle Schnittstelle. Die "aktuelle" 
Version von RS232-Standard ist über 20 Jahre alt:

http://de.wikipedia.org/wiki/RS-232

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.