Hallo, hat jemand schon mal versucht ein an ein Raspberry Pi angeschlossenes LCD Display (16x2) über die Shell (bash oder wie auch immer) anzusteuern?. Wäre das überhaupt möglich?. Im Netz finde ich nur irgendwelche Fetzen von Python Skripten. Irgendwelche Test Skripte funktionieren zwar, aber ich wollte mir selbst etwas basteln, kenne mich aber nicht mit Python aus. Jemand Erfahrung damit oder Ahnung ob sich ein ansteuern über die Shell realisieren laesst?. Vielen Dank im voraus. Gruß Christian
Christian B. schrieb: > Wäre das überhaupt möglich?. Ja. müsste gehen. Grodon@Drogon hat ein Programm namens gpio veröffentlicht. Mit diesem lassen sich die Pins per Shell-Skript steuern: http://projects.drogon.net/raspberry-pi/gpio-examples/tux-crossing/2-two-more-leds/ Jetzt mußt Du nur noch das LCD-Protokoll realisieren. Die Lösung ist zwar reichlich umständlich (bzw. unelegant), aber als Demonstration bzw. Test ganz ok. Jens
Ja, das geht problemlos. Ich habe so ein 16x2 Display per I2C an den GPIO Port angeschlossen, die I2C Treiber samt Anleitung stehen im Netz und liessen sich einfachst mit Bordmitteln laden und installieren. Anleitungen finden sich im Netz. Auf besagtem Pi läuft das aktuelle RaspBMC und die Installation wurde per SSH-Shell auf der Kommandozeile durchgeführt.
Für ein 16*2 HD44780 und I2C Expander PCF8574 hab ich mal ein Shell-Script geschrieben, dass i2cset benutzt. Kommt also ohne Python oder Treiber aus. Aber wie gesagt die i2c Variante. Reiner
Hi Christian, Schau dir mal dieses PDF an. Mit der darin erwähnten Library von Adafruit sollte das schreiben eines kleines Scripts, das du über die Shell aufrufen kannst, nicht allzu schwierig sein. http://learn.adafruit.com/downloads/pdf/drive-a-16x2-lcd-directly-with-a-raspberry-pi.pdf Liebe Grüße, Lui
Hallo, vielen Dank für die vielen Antworten und Tipps. Ich habe mich jetzt mal für die i2c Version entschieden. Mein Display hat ein I2C Modul von DFRobot. Das Modul ist mit dem folgendem Chip bestueckt: http://www.nxp.com/documents/data_sheet/PCA8574_PCA8574A.pdf Gefolgt bin ich mal dieser Anleitung: http://kampis-elektroecke.de/?page_id=2035 Das Display wird am i2c Bus erkannt als Device 0x27. Ich haenge laut der gefolgten Anleitung bei dem Punkt mit der Kommunikation mit dem EEPROM. Wie kriege ich die Adresse des EEPROMs heraus?. Vielen Dank schon mal. Gruss Christian
i2cdetect -y 0 ##falls du das Rpi Model A hast i2cdetect -y 1 ##falls du das Model B dein Eigen nennst Vorausgesetzt, du hast die i2c-Tools installiert siehe hier: http://www.gsurf.de/vorbereiten-des-raspberry-pi-auf-i2c/ Gruß Reiner
Hallo Reiner, danke fuer Deine Antwort. Soweit war ich bereits. Ein i2cdetect -y 1 gibt mir eine 27 aus. Ich glaube ich habe da Verstaendnisprobleme wie ich nun Text auf dem Display anzeigen kann. Wenn ich i2cget -y 1 0x27 eingebe erhalte ich als Ausgabe 0xf7. Schreiben Mittels i2cset -y 0x27 0x00 funktioniert wohl auch. (bei der Eingabe erlischt die Hindergrundbeleuchtung) Wenn ich erneut i2cget -y 1 0x27 eingebe erhalte ich als Ausgabe 0x00. Gruss Christian
Das ist leider ganz und gar nicht so einfach, wenn du das Display mit i2cset steuern willst. Falls du das vorhast, musst du dich mit den Unterlagen des HD44780 auseinander setzen. Falls du es unbedingt mit der Shell und i2cset machen willst kannst folgenden Code als Beispiel nehmen. Der Code setzt allerdings voraus, dass die Datenleitungen P0-3 des Extender mit D4-8 des LCD verbunden sind, wie das z.B. das mjkdz-Modul. Die weiteren Verbindungen können im Code direkt verdrahtet werden:
1 | #defaults parameters |
2 | a=0x27 # Chip ADR |
3 | ... |
4 | |
5 | #LCD WIRE |
6 | LCD_EN=0x10 # bit 4 |
7 | LCD_RS=0x40 # bit 6 |
Hab zwar auch Code gebastelt, wo die Datenleitungen frei verdrahtet werden können, hab aber im Moment keinen Zugriff drauf. Vlt. hilft es. Gruß Reiner
Hallo Reiner, danke fuer Deine Hilfe. Ich hatte gedacht bzw. gehofft das es alles etwas einfacher geht. Kenne mich auch mit der Verkabelung und den ganzen Dingen nicht wirklich aus. Habe an mein Display ein i2c Modul (Backpack) angelötet welches ich dann über VCC, GND, SDA und SCL mit dem Raspberry verbinde. Bevor ich diesen Thread eröffnet habe hatte ich ein Display ueber diverse GPIOs verkabelt. So wie hier: http://learn.adafruit.com/drive-a-16x2-lcd-directly-with-a-raspberry-pi/overview Da funktionierten zumindest irgendwelche Testscrikpte in Python. Mit Python kenne ich mich nicht aus und hatte einfach die Hoffnung man könne das Display ueber die Shell genauso leicht ansprechen. Vielleicht sollte ich es dann doch lieber irgendwie in Python versuchen. Erscheint mir zumindest Momentan die einfacherer Lösung zu sein. Gruss Christian
Ja, du solltest sicher darüber nachdenken, das Ganze mit irgendeinen ausgereiften Lösung, die es für den Raspi zahlreich gibt, zu machen. Perfekt ist der Link von Icke. Für den Einsatz unter RASPMC gibt es auch eine perfekte Lösung, die sich leicht anpassen lässt. Google einfach mal ne Weile. Wenn du dir die Python-Skripte ansiehst wirst du übrigens feststellen, dass die fast genauso aussehen wie mein Shellscript;.-) halt nur in Python. Reiner
Warum nimmst Du nicht einfach ein serielles LCD. Kostet 5 Euronen mehr als ein normales. Der Pi hat serielle Schnittstellen. Die Ansteuerung läuft dann in der Art: Echo " Hallo Welt" > /dev/ttyx. Nebst gut dokumentierten Steuerbefehlen. Fertig ist die Laube.
Hallo, das ist auch eine Idee. Dann sollte sowas ausreichen, oder?. http://www.physicalcomputing.at/shop/article_A-1120200/20x4-LCD-Display-schwarz-auf-gr%C3%BCn,-seriell,-5V.html?shop_param=cid%3D18%26aid%3DA-1120200%26 Gruss Christian
Hallo, ich habe mir jetzt nun mal ein LCD mit einer seriellen Anschlussmoeglichkeit organisiert und habe es wie folgt angeschlossen: Display: Raspberry: VDD 5V+ (Pin2) GND GND (Pin6) RX TX (Pin8) Die folgende Zeile habe ich in /etc/inittab auskommentiert: T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 Die Datei /boot/cmdline.txt habe ich wie folgt geaendert von: dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=dealine rootwait nach ... dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait Das Ganze deaktiviert den moeglichen Login ueber den UART so wie ich das verstanden habe. Wenn ich den Raspberry starte, erscheinen auf dem Display waehrend des Bootvorgangs ein paar wahllose Zeichen. Der Befehl: echo "Test" >/dev/ttyAMA0 laeuft ins Leere. Ausser der wahllosen Zeichen beim Booten kriege ich auf dem Display nichts angezeigt. Jemand eine Idee was falsch laeuft bzw. was ich vergessen haben koennte oder noch versuchen koennte ?. Vielen Dank im voraus. Gruss Christian
Hallo, ich habe das Ganze jetzt mal mit einem 3,3V Display getestet. Diesmal mit Erfolg. Mehr oder weniger. Jetzt habe ich das Problem, wenn ich per echo "test" >/dev/ttyAMA0 etwas an das Display sende, sich nach dem Zeichen/String sich immer ein kryptisches Zeichen mit anhängt. Ich habe mal ein Foto bereit gestellt. Wenn ich das Programm screen nutze (screen /dev/ttyAMA0 9600) wird alles normal angezeigt und kein Zeichen mehr angehängt. An der Konfiguration der seriellen Schnittstelle dürfte es dann ja eigentlich nicht liegen, oder ?. Hat jemand eine Idee ?. Vielen Dank im voraus. Gruß Christian
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.