Hallo liebes Forum,
ich habe eine Grundlegende Frage und zwar wie man am besten mehrere LCDs
an einen PC anschließen kann um diese dann per Eingabemaske vom PC aus,
Texte anzeigen lassen kann.
Es sollten ca. 10 stk von diesen
http://www.reichelt.de/Hintergrund-blau/LCD-204B-BL/3/index.html?&ACTION=3&LA=446&ARTICLE=53952&GROUPID=3006&artnr=LCD+204B+BL
angesteuert werden.
Zum Hintergrund:
Ich plane/ fertige gerade ein eigenes DMX Lichtsteuerpult, und möchte
gerne diese Displays über den Tastern haben um diese dann per Software
zu beschriften. Damit soll das bekleben mit klebeband und Edding
Beschriftung vermieden werden.
Habt ihr eine Idee? Gibt es da was fertiges, oder muss ich mir selber
was bastelen?
Gruß
xXwarwickXx
Im Großen nennt man sowas "digital signage". Man benötigt eine
Abspiel-Hardware pro Bildschirm und einen Server.
Ich empfehle, sieh dir mal das Open Source Projekt "Xibo" an. Als Server
dient ein beliebiger PC oder ein NAS mit Apache, PHP und MySQL. Das ist
ein richtiges Online-Redaktionssystem mit Texten, Bildern, Videos, PDF,
HTML-Seiten, RSS-Feeds bis hin zu PPT-Präsentationen (letzteres aber nur
bei Clients unter Windows).
Auf der Abspielseite kann man z.B. die HDMI-Android-Sticks verwenden,
die es bereits ab ca. 50,- in der Bucht gibt - es gibt nämlich einen
Xibo-Client für Android (und für Linux und Windows).
Will man z.B. auch PPT abspielen, muss man Windows auf der Client-Seite
verwenden. Ich benutze z.B. die Computerchen "ZOTAC Nano" für diesen
Zweck ...
xXWARWICKXx schrieb:> Es sollten ca. 10 stk von diesen> http://www.reichelt.de/Hintergrund-blau/LCD-204B-BL/3/index.html?&ACTION=3&LA=446&ARTICLE=53952&GROUPID=3006&artnr=LCD+204B+BL> angesteuert werden.
Das sind halt nur nackte Anzeigen, da müsstest du jeweils einen
(einfachen) Prozessor/Controller dazu bauen und programmieren, dann
könntest du Daten über RS232C senden, die Anzeige kann ja eh nur Text.
Aber eigentlich sind auch 10 St. zu wenig zum Selbermachen, wenn du
keine Erfahrung hast, was Gekauftes wie schon vorgeschlagen funktioniert
schneller und sicherer.
Gruss Reinhard
PS im Prinzip kann man auch 10 Anzeigen mit einem Prozessor ansteuern,
aber das gibt es bestimmt nicht fertig.
Hallo,
danke für die Antworten!
Das fertige ist mir eindeutig zu teuer. Selber machen sollte soweit kein
Problem sein. Habe aber bissher nur Erfahrungen mir Arduino und PICAXE,
und wenige Einsteigerkentnisse mit Atmels. Da ich schon Lange mit
Elektronik zu tun hae (Ist auch mein Beruf) sollte es nicht das Problem
sein sich in die Programmierung reinzufuchsen. Den Hardware-Aufbau
bekomme ich ohne Probleme hin. Mein Problem besteht darin das ich nicht
weis wie ich da ran gehen soll, ein oder jeweils einen µC und mit was
kann ich mir eine kleine Software für den PC basteln. Kommunikation über
RS232 wäre eigentlich die Beste Lösung. Halt so ein paar einsteiger
Hinweise.
Gruß
xXWARWICKXx
Die z. B. hier verwendeten Displays:
http://shop.cboden.de/Digispark/I2C-LCD-Erweiterungssatz.html werden
über I2C angesprochen. Dazu trägt das Controller-Board des Displays
huckepack noch eine kleine Zusatzplatine mit einem PCF8574 drauf. Im
Prinzip sollte es kein Problem sein, 8 Stück davon gleichzeitig an einen
Digispark zu hängen, wenn man es schafft, die Adress-Bits des
Port-Expanders zu setzen. Die Zusatzplatine hat auch einen
Kodier-Schalter drauf. Ich hab's noch nie überprüft, aber ich vermute,
dass damit die Geräte-Adresse angepasst werden kann. Wenn dem so ist,
dann müßte man nur die LCD-Bibliothek anpassen um die einzelnen Displays
ansprechen zu können.
Ich hab im Moment gerade kein Shield zu Hand, werde das aber heute Abend
mal checken. So könntest Du bei Arduino bleiben.
Ich denke - wenn die Leitungswege nicht zu lang sind - würde
ich auch die Display's seriell anschliessen.
Alle Display's an den seriellen Bus, jeweils ein Chip Select zum
Display,
Microcontroller empfängt via RS232 Befehle/Texte vom PC und sendet die
Daten an das entsprechende Display.
Natürlich nur, wenn die Text-Updaterate nicht zu schnell ist, da der
Steuerungsmikrocontroller zeitgleich nur ein Display ansprechen kann.
Wenn Du, wie geschrieben, 4x20 Blau suchst, dann schau mal hier :
http://www.gadgetpool.de/bestellen/catalog/product_info.php/cPath/22_26/products_id/95
Ich hab mal ein Foto von dem interessanten Ausschnitt der "HuckePack"
Platine der LCD-Displays für den Digispark gemacht. Ich hatte mich da
etwas geirrt ... auf der Platine ist kein Kodierschalter sondern nur ein
Poti für den Kontrast. Das schwarze Ding ist ein PCF8574T. Der
"übersetzt" die I2C Kommandos in 8bit parallel Signale für den
eigentlichen Display-Controller. Unterhalb des blauen Potis siehst Du
aber 3 x 2 Durchkontaktierungen. Das sind auf der Seite des Potis die 3
Adress-Leitungen des Portexpanders und auf der anderen Seite ist GND.
Die Adressleitungen sind im Auslieferstand mit +5 Volt belegt.
Vermutlich per Pullup-SMD-Widerstand, die wohl irgendwo auf der
Unterseite versteckt sind. Theoretisch sollte es also klappen, per
Lötbrücke die Adressleitungen nach Bedarf auf GND zu ziehen und so ohne
großen Aufwand 8 der Displays an einem einzigen Digispark (oder
alternativ auch einem anderen (Arduino-) Board) zu betreiben (hab ich
jetzt aber nicht getestet).
Die Software-Bibliothek müßte dafür wohl nicht einmal angepaßt werden.
Wie man im Code-Beispiel unter
http://cboden.de/mikro-controller/digispark/20-mikrocontroller/44-digispark-mit-lcd-anzeige
sieht, wird bei Verwendung der LiquidCrystal_I2C Bibliothek im
Konstruktor der gleichnamigen Klasse die I2C Adresse mit angegeben. Man
könnte also für jedes Display eine eigenes Objekt mit individueller
Adresse anlegen.
Da der Digispark über eine USB-Schnittstelle verfügt, wäre auch die
Kommunikation mit dem PC kein Problem.
Wenn man die "HuckePack" Platine selber aufbauen würde und an die
"nackten" Displays lötet, könnte man auch beide Varianten des PCF8574
verwenden und so max. 16 LCD Displays an einen einzelnen Digispark per
I2C hängen.
Hallo,
die Geschichte mit dem Digispark klingt Interessant und scheint nicht so
aufwändig zu werden.
Ich gebrauche 8 LCDs das passt wie Faust aufs Auge. Aber soweit ich das
jetzt gesehen hab funktioniert das erweiterungsshield nur mit 2x16
Zeichen, oder habe ich das jetzt falsch? Haben wollte ich gerne 4x20.
Gruß xXWARWICKXx
Die Standard-Displays sind in der Tat 2x16 ... allerdings lässt sich das
Konzept mit den Portexandern sicher auch auf andere Displays anwenden.
Dem Konstruktor der Klasse dürfte es egal sein, da man an ihn ja die
Anzahl der Zeichen und der Zeilen übergeben kann. Damit sollte die
Software-Bibliothek ohne Anpassung verwendbar sein. Also braucht man nur
die "Hucke-Pack" Platine nachbauen und fertig. Das sollte neben dem
Portexpander und dem Poti für den Kontrast nicht mehr viel sein.
Mels Dich doch einfach hier als User an und schick mir ne PN vielleicht
kann ich Dir da ja helfen.
Ich hab jetzt mal ein wenig rumgesucht. I2C zu 44780 Adapter gibt's zwar
schon für ein paar Euro vom China-Mann, allerdings sind die alle ohne
Kodier-Schalter für die Adress-Pins und auch ein paar andere Dinge
stören mich daran.
Ich hab deshalb mal selber schnell einen Prototyp zusammen gezimmert,
mit
- Kodier-Schalter für die Adress-Pins
- durchgeschleiftem I2C Bus (damit man mehrere hintereinander hängen
kann)
- optionalem Vorwiderstand für die Hintergrundbeleuchtung
Fällt Euch sonst noch was ein, was nice-to-have wäre?
Hallo,
Das mit den 10 USB Teilnehmern ist denke ich nicht die beste Lösung,
aber trotzdem Danke für die Idee!
@Digi Spark, Danke schonmal!! Mir fällt aber nichts ein was noch mit
rein sollte.. :)
bin gespannt!
Gruß
xXWARWICKXx
Man könnte auch einen Arduino Mega 2560 aus China nehmen:
http://stores.ebay.de/skymodel2010
mit oder ohne Ethernet.
Und versuchen, da die Displays anzusteuern.
Ob das mit 10 klappt, weiß ich nicht.
Dann kannst du einfach Strings über den Usb-Port senden und vorne 'ne
Zahl stehen haben (0-9 würde sich anbieten) und diese mit charAt(int)
abgreifen. Rest mit substring(1) trennen und aufs Display schieben. Dazu
einfach was mit .net oder Java. Ist, wenn der 10 LCDs verträgt, bestimmt
das günstigste und einfachste.
Ich würde ein 2x16 Display nehmen, ist deutlich günstiger(am besten
China).
Früher habe ich LCD- oder VFD- Displays mit einem solchen Interface
einfach an den Druckerport gehängt und als simpelsten Test "copy
text.txt lpt:" genommen. Dann wurde der Text angezeigt.
Vielleicht geht das auch mit einem USB - LPT Modul, das hab ich noch nit
getestet. - Diese Lösung verlangt dann nur noch, daß 10 chip select
Signale für die 10 Displays generiert werden.
Mit einem IO-Warrior (http://www.codemercs.com/io-warrior/?L=0) lassen
sich mehrere Displays ansteuern, wenn man das E-Signal über UND-Gatter
mit jeweils einem Port Pin für das gewünschte Display frei gibt.