Der gängigste Controller der mehrzeiligen Zeichen-Displays ist der HD44780. Es gibt verschiedene Raspberry Pi LCD-Display Größen (8×2, 16×2, 20×4, etc.), die damit laufen. In diesem Tutorial wird der Aufbau eines 16×2 Zeichen Displays als auch ein Test Skript gezeigt.
Einige Worte vorweggesagt: In diesem Tutorial werden alle Pins direkt angesprochen, wodurch recht viele GPIOs belegt werden. Eine andere Methode ist die Verbindung via I2C.
Zubehör
Folgendes Material wird benötigt:
- Display mit HD44780 Controller (ca. 2-3 €)
- Jumper Kabel
- Widerstand oder wahlweise einen Poti (zum Regeln der Hintergrundbeleuchtung)
- Breadboard
Aufbau
Ich beziehe mich in diesem Fall auf die Pin Nummerierung (GPIO.BOARD), nicht auf die GPIO Nummern:
LCD Pin | an RPi GPIO | Beschreibung |
---|---|---|
1. VSS | Pin 6 (GND) | Versorgungsspannung (Masse) |
2. VDD | Pin 2 (5V) | Versorgungsspannung 5V |
3. V0 | Pin 6 (GND) | Kontrastspannung |
4. RS | Pin 7 (GPIO4) | Registerauswahl (0: Befehlsregister, 1: Datenregister) |
5. RW | Pin 6 (GND) | Read/Write (0: Write Modus, 1: Read Modus) |
6. E | Pin 11 (GPIO17) | Taktflanke |
7. D0 | – | Datenleitung 0 |
8. D1 | – | Datenleitung 1 |
9. D2 | – | Datenleitung 2 |
10. D3 | – | Datenleitung 3 |
11. D4 | Pin 12 (GPIO18) | Datenleitung 4 |
12. D5 | Pin 15 (GPIO22) | Datenleitung 5 |
13. D6 | Pin 16 (GPIO23) | Datenleitung 6 |
14. D7 | Pin 18 (GPIO24) | Datenleitung 7 |
15. A | Pin 2 (5V) (mit Poti) | Hintergrundbeleuchtung Anode |
16. K | Pin 6 (GND) | Hintergrundbeleuchtung Kathode |
Schematisch sieht das ganze folgendermaßen aus:
Durch Drehen des Potentiometers kann die Hintergrundbeleuchtung geregelt werden. Manche Displays vertragen keine 5V für die Hintergrundbeleuchtung, daher sollte entweder ins Datenblatt geschaut werden, oder immer zumindest ein 470 Ω – 510 Ω Widerstand zwischen geschaltet werden.
Raspberry Pi LCD-Display testen
Du kannst das Skript, welches ich verwendet habe, entweder hier ansehen, oder einfach downloaden und ausprobieren.
wget http://www.tutorials-raspberrypi.de/wp-content/uploads/scripts/hd44780_test.py chmod +x hd44780_test.py python hd44780_test.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
#!/usr/bin/python import time import RPi.GPIO as GPIO # Zuordnung der GPIO Pins (ggf. anpassen) LCD_RS = 4 LCD_E = 17 LCD_DATA4 = 18 LCD_DATA5 = 22 LCD_DATA6 = 23 LCD_DATA7 = 24 LCD_WIDTH = 16 # Zeichen je Zeile LCD_LINE_1 = 0x80 # Adresse der ersten Display Zeile LCD_LINE_2 = 0xC0 # Adresse der zweiten Display Zeile LCD_CHR = GPIO.HIGH LCD_CMD = GPIO.LOW E_PULSE = 0.0005 E_DELAY = 0.0005 def lcd_send_byte(bits, mode): # Pins auf LOW setzen GPIO.output(LCD_RS, mode) GPIO.output(LCD_DATA4, GPIO.LOW) GPIO.output(LCD_DATA5, GPIO.LOW) GPIO.output(LCD_DATA6, GPIO.LOW) GPIO.output(LCD_DATA7, GPIO.LOW) if bits & 0x10 == 0x10: GPIO.output(LCD_DATA4, GPIO.HIGH) if bits & 0x20 == 0x20: GPIO.output(LCD_DATA5, GPIO.HIGH) if bits & 0x40 == 0x40: GPIO.output(LCD_DATA6, GPIO.HIGH) if bits & 0x80 == 0x80: GPIO.output(LCD_DATA7, GPIO.HIGH) time.sleep(E_DELAY) GPIO.output(LCD_E, GPIO.HIGH) time.sleep(E_PULSE) GPIO.output(LCD_E, GPIO.LOW) time.sleep(E_DELAY) GPIO.output(LCD_DATA4, GPIO.LOW) GPIO.output(LCD_DATA5, GPIO.LOW) GPIO.output(LCD_DATA6, GPIO.LOW) GPIO.output(LCD_DATA7, GPIO.LOW) if bits&0x01==0x01: GPIO.output(LCD_DATA4, GPIO.HIGH) if bits&0x02==0x02: GPIO.output(LCD_DATA5, GPIO.HIGH) if bits&0x04==0x04: GPIO.output(LCD_DATA6, GPIO.HIGH) if bits&0x08==0x08: GPIO.output(LCD_DATA7, GPIO.HIGH) time.sleep(E_DELAY) GPIO.output(LCD_E, GPIO.HIGH) time.sleep(E_PULSE) GPIO.output(LCD_E, GPIO.LOW) time.sleep(E_DELAY) def display_init(): lcd_send_byte(0x33, LCD_CMD) lcd_send_byte(0x32, LCD_CMD) lcd_send_byte(0x28, LCD_CMD) lcd_send_byte(0x0C, LCD_CMD) lcd_send_byte(0x06, LCD_CMD) lcd_send_byte(0x01, LCD_CMD) def lcd_message(message): message = message.ljust(LCD_WIDTH," ") for i in range(LCD_WIDTH): lcd_send_byte(ord(message[i]),LCD_CHR) if __name__ == '__main__': # initialisieren GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(LCD_E, GPIO.OUT) GPIO.setup(LCD_RS, GPIO.OUT) GPIO.setup(LCD_DATA4, GPIO.OUT) GPIO.setup(LCD_DATA5, GPIO.OUT) GPIO.setup(LCD_DATA6, GPIO.OUT) GPIO.setup(LCD_DATA7, GPIO.OUT) display_init() lcd_send_byte(LCD_LINE_1, LCD_CMD) lcd_message("Es scheint zu") lcd_send_byte(LCD_LINE_2, LCD_CMD) lcd_message("funktionieren :)") time.sleep(4) msg1 = "Dies ist ein" msg2 = "kleiner Test" for i in range(len(msg1)): lcd_send_byte(LCD_LINE_1, LCD_CMD) lcd_message(msg1[:i+1]) lcd_send_byte(LCD_LINE_2, LCD_CMD) lcd_message("") time.sleep(0.1) for i in range(len(msg2)): lcd_send_byte(LCD_LINE_1, LCD_CMD) lcd_message(msg1) lcd_send_byte(LCD_LINE_2, LCD_CMD) lcd_message(msg2[:i+1]) time.sleep(0.1) time.sleep(4) GPIO.cleanup() |
Solltest du ein anderes Display oder eine andere Pin Belegung gewählt haben, vergiss nicht das Skript anzupassen.
Durch die einfache Ansteuerung kannst du verschiedene Skripte, die bspw. den Status des Raspberry Pi’s anzeigen, erstellen.
198 Kommentare
kann ich statt GPIO Pin 4 auch einen anderen freien benutzen?
Na klar, du solltest dann aber auch mein Skript anpassen:
bei mir blinkt der display einfach nur weiss jemand wo der fehleer liegen koente
nein
Hi,
ich habe das Problem, dass mein Display (und ein weiteres welches ich mir testweise besorgt habe) nur noch weiße Pixel zeigt. Ich habe ein Poti am Kontrast 🙂
Interessanterweise haben deine Beschreibung und dein Script anfangs wunderbar funktioniert. Ich weiß allerdings nicht mehr, warum es plötzlich nicht mehr läuft.
Ich hatte auch schon von einer möglichen Überspannung gehört, nachgemessen und nun einen 22R Widerstand am 5V0, so dass die Spannung nun bei 5,03 V liegt. Hilft aber auch nicht.
Sobald ich Strom drauf gebe ist die 1. Zeile weiß und die 2. Zeile dunkel. Sobald der erste Text kommt, flackert alles und das display ist komplett mit weißen Pixeln gefüllt.
Das klingt schwer danach, dass ein Fehler im Display ist. Ob es kaputt gegangen ist, kann ich dir nicht sagen, aber hast du mal alle Bauteile ausgetauscht, ggf. einen 10k Widerstand statt dem Poti genommen? Wenn du am Skript und am Pi nichts verändert hast, muss es nunmal an der Hardware liegen. Wackelkontakte kannst du ausschließen oder?
Probiere mal die 4 in eine 14 zu ändern. Bei mir hat es erst funktioniert, nachdem ich die GPIO Pins festlegte und bei der LCD_RS (TXD) von 4 auf 14 änderte.
Lg
Hi,
Tolle Anleitung. Werde versuchen diese mal nachzubauen. Teile sind schon bestellt. Nur eine Frage habe ich noch. Welcher Poti wird denn genau benötigt?
Ein Poti ist hier eigentlich nur nice-to-have. Du kannst auch einen normalen Widerstand benutzen, nur den Poti kannst du eben regeln, bis du deine ideale Hintergrundbeleuchtung gefunden hast. Ich habe einen 10k Poti verwendet, soweit ich mich erinnere.
Ist es denn auch möglich das Display ohne Steckkarte, Widerstände und Poti zu verwenden?
Mit freundlichen Grüßen
Ohne Breadboard ist es möglich, wenn du die Kontakte anlötest. Einen Poti oder zumindest einen Widerstand würde ich zur Helligkeitsbegrenzung einbauen, kosten ja kaum etwas mehr.
LG Felix
Hi,
super Seite. Ich finde deine Arbeit top.
Ich musste für die Uni eine Geschwindigkeitsmessanlage basteln und wollte das Ergebnis auf einem Display anzeigen lassen, damit man keinen HDMI Bildschirm zum betreiben braucht.
Dank deinen Tutorials hat das wunderbar funktioniert. Danke 🙂
Gruß
Basti
Freut mich 🙂
Falls du Anregungen/Verbessungsvorschläge oder Ideen für Tutorials hast, immer her damit 😉
Mich würde sehr der Inhalt deines Programms mehr interessieren, möchte gerne ein LCD ansteuern können ohne ein fertig geschriebenes Skript. Wünschte mir sehr eine genauere Erklährung.
Hi!
Erstmal danke für das tolle Tutorial!
Meine Problem war: Nach Verdrahtung und der Ausführung des Python-Skripts stand der korrekte Text auf dem LCD, und auch die Hintergrundbeleuchtung war korrekt. Aber sobald ich mit der Hand in die Nähe(! – keine Berührung!) der Verbindungsdrähte kam, wurde das Display Schritt für Schritt mit schwarzen Quadraten überschrieben. Es lief einfach nicht stabil. Manchmal reichte schon ein andres Kabel, was in die Nähe der Konstruktion kam und schwupps war alles überschrieben. Der Tipp eines Kollegen brachte mich drauf: Im Datenblatt hat das schwarze Rechteck im Zeichnsatz die Position 255 = 0xFF = 11111111.
So habe ich nach Ausführung des Skriptes mal die Spannungen der Daten-GPIOs gemessen. Alle hatten +5V angelegt!
Dieses Verhalten scheint vom GPIO.cleanup() am Ende des Skriptes zu kommen. GPIO.cleanup() soll ja alle benutzten Pins in einen „sicheren“ Zustand bringen. Nur „sicher“ heißt in dem Zusammenhang Umschalten von Output => Input. Und das bedeutet es liegt permanent eine Spannung an – wenn auch hochohmig. Aber dadurch scheint schon eine kleine „athmosphärische“ Störung zu reichen und das LCD schreibt alles mit schwarzen Rechtecken voll!
Ich habe daher die Zeile GPIO.cleanup() aus deinem Skript auskommentiert.
Und seit dem läuft bei mir alles stabil!
Danke nochmal für das tolle Tutorial!
Grüße aus Erlangen. DerWOK.
Bei mir passiert im Display garnichts. Weiße Felder wie sonst immer. Aber ich hab auch was gelesen das sich dabei irgend was für den RPi B+ geändert hat. Hat jemand eine Idee?
Die GPIO Nummerierung hat sich nicht geändert, ich denke, dass es bei dir an etwas anderem liegt.
PS: Bald kommt ein Tutorial, wie man es über I2C betreiben kann.
Hey,
danke für das Tutorial. Bei mir hat es leider gar nicht funktioniert. Das Display leuchtet zwar blau aber ich sehe keinen Text oder annähernd irgendwas als die blau Farbe.
An meinen Display waren keine Kontakte schon dran, ich habe jetzt nur die männlichen Kabel von oben in die Kontaktlöcher des Displays gesteckt und unten in das Breadboard. Einen leichten Wackelkontakt habe aber wenn ich es nicht einfasse leuchtet es schon. Nur der Text erscheint leider nicht. ich weiß es ist jetzt sicher schwer zu sagen woran das liegen kann aber denkst du eher an den Kontakten oder an was anderem?
Danke und lg
PS: Ich habe einen Raspberry Pi 2
Hallo Christoph,
dein Display hat aber einen HD44780 Controller oder? Was du beschreibst klingt danach, als ob nur die Hintergrundbeleuchtung (korrekt) angeschlossen ist. Versuch mal die Kontakte stabil zu befestigen, nach einem Wackelkontakt müsste neu initialisiert werden.
LG Felix
Hallo Felix,
danke für die Antwort. Jetzt bin ich mir ehrlich gesagt selber nicht mehr sicher ob der Controller stimmt. Das war auf jeden Fall der den ich wollte (HD44780).
Diesen hier hab ich: https://www.conrad.at/de/led-baustein-weiss-blau-b-x-h-x-t-80-x-36-x-132-mm-gleichmann-ge-c1602b-tmi-jtr-183045.html
Jetzt befürchte ich auch, dass ein falsches ist oder?
Danke und lg
Hallo Christoph,
ich habe eben mal einen Blick ins Datenblatt geworfen und es steht nicht dabei, dass es einen HD44780 Controller verwendet 🙁
Allerdings findest du diese Displays bereits ab ein paar Euro.
LG Felix
Ja dort habe ich auch geschaut =( Dürfte dann vielleicht echt falsch sein. ich hab mir heute von einem Kollegen die Stecker drauflöten lassen und werde es zur Sicherheit noch einmal probieren. Zumindest Wackler sollte jetzt nicht mehr schuld sein. Wenn es wieder nicht geht, werde ich mir ein anderes Display bestellen. Danke dir auf jeden Fall!
Hey Felix,
es hat sich herausgestellt, dass das Display doch den Controller hat. Es ist in der Beschreibung im Diagramm zu erkennen, aber im Text man ihn nicht gefunden.
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/183045-da-01-en-LCD_MODUL_16X2_LED_GE_C1602B_TMI_JT_R.pdf
Hast du vielleicht noch einen Tipp was ich sonst noch kontrollieren könnte?
Danke und lg
Hi Christoph,
ich habe hier mehrere HD44780 Displays in verschiedenen Größen und hatte dieses Problem immer nur dann, wenn die Datenverbindung nicht richtig angelegt/initialisiert wurde dafür aber Spannung für die Hintergrundsbeleuchtung anliegt.
Leider ist es aus der Ferne nur schwer zu vermuten woran es liegen könnte – bis eben auf falsche Verkabelung, was du aber bestimmt schon überprüft hast. Tut sich den gar nichts am Display, sobald du testest? Und sind alle benutzen GPIOs in Ordnung (ich hatte mal bei einem meiner Pi’s den Fall, dass ein Pin sich nicht ansteuern ließ).
Ansonsten habe ich vor bald noch ein Tutorial zu diesen Displays zu machen und zu zeigen, wie man sie mittels I2C ansteuert. Eventuell wäre das noch eine Alternative.
LG Felix
Danke Felix, ich werde noch einmal versuchen alles zu kontrollieren.
Beim ersten Test hat die Hintg. Farbe ganz leicht geflackert wenn ich den Code laufen hatte. Bei den anderen Malen war das glaub ich nicht mehr so. Derzeit ist es auf jeden Fall so, dass das Hintg. Licht extrem stark leuchtet und sich nicht mehr rührt. ( viel heller als zuvor)
Poti habe ich nicht aber mit Widerständen habe ich versucht ob ich den Kontrast einstellen kann. Das ging aber nicht.
Ich werde vielleicht mal versuchen alle Pins am Pi durchzugehen ob die funktionieren. Habe aber schon verschieden für das Display getestet. Kann ich irgendwie die Kontakte am Display auch testen? Wenn dort irgendwas kaputt ist komme ich ja nie drauf #endlos #debug =)
Danke dir und lg
Kontrast und Hintergrundfarbe sollten natürlich aufeinander angepasst sein (kein Kontrast würde trotz Zeichen nichts anzeigen lassen). Nur lässt sich der Kontrast schwer einstellen, solange man die Zeichen nicht sieht 😀
Falls du einen Arduino rum liegen hast, könntest du es damit testen. Oder falls du noch ein zweites Display da hast, kannst du schauen ob es bei gleicher Belegung am Pi funktioniert.
Hey,
hab es zum Laufen gebracht!
Es war die GPIO Belegung. Die Auflistung die ich hatte war falsch, jedoch nicht komplett. Die Pins die ich für Tests mit LEDs verwendet habe, die waren richtig. Aber als ich mehr verwenden musste für das Display, waren immer mind. 3 falsche Belegungen dabei. Bin froh dass es jetzt klappt und danke für das Tutorial und die Hilfe!
lg
Hey,
hab es zum Laufen gebracht!
Es war die GPIO Belegung. Die Auflistung die ich hatte war falsch, jedoch nicht komplett. Die Pins die ich für Tests mit LEDs verwendet habe, die waren richtig. Aber als ich mehr verwenden musste für das Display, waren immer mind. 3 falsche Belegungen dabei. Bin froh dass es jetzt klappt und danke für das Tutorial und die Hilfe!
lg
Hallo Forum
Klasnse Seiten super g
Habe durch Zufall eure Seite gefunden und hier noch ein TC1602 A 16*2 Display zum ausprobieren gehabt.
Also Datei runtergeladen und angeschlossen. Da ich GPIO 17 gerade benutzte diesen mit GPIO 27 getauscht und gleich darauf meine Frau per Text gefragt ob sie mich noch einmal heiraten würde. Für einen Anfänger ein schönes Gefühl wenn es sofort klappt.
Jetzt werde ich mir erstmal den Code anschauen um es zu verstehen. Danach versuchen
etwas zu verändern was passiert.
Gruß aus Dorsten
NRW
Herbert
Hallo Herbert,
freut mich, dass es dir gefällt 🙂 Wenn du Fragen zum Skript hast, kannst du sie gerne hier stellen.
LG Felix
Hallo Forum
Klasnse Seiten super g
Habe durch Zufall eure Seite gefunden und hier noch ein TC1602 A 16*2 Display zum ausprobieren gehabt.
Also Datei runtergeladen und angeschlossen. Da ich GPIO 17 gerade benutzte diesen mit GPIO 27 getauscht und gleich darauf meine Frau per Text gefragt ob sie mich noch einmal heiraten würde. Für einen Anfänger ein schönes Gefühl wenn es sofort klappt.
Jetzt werde ich mir erstmal den Code anschauen um es zu verstehen. Danach versuchen
etwas zu verändern was passiert.
Gruß aus Dorsten
NRW
Herbert
Hallo Herbert,
freut mich, dass es dir gefällt 🙂 Wenn du Fragen zum Skript hast, kannst du sie gerne hier stellen.
LG Felix
Hallo Felix
Warum ich das nochmal geschickt habe weiss ich leider nicht (tmL)
Danke und sofort eine Frage hinterher.
Ist die Anordnung der GPIO Pins bis Pin 26 anders zwischen der armv61 Version und der armv71?
Ich benutze die armv61 Version mit der 26poligen Leiste wo ich das Script von Dir in der Zeile:
# Zuordnung der GPIO Pins (ggf. anpassen)
…..
LCD_E = 17 hier auf LCD_E = 27
geändert habe.
Nun steht aber bei Dir oben Pin 13 GPIO 21 bei mir aber in der Liste Pin13 GPIO 27 weshalb ich ja da ich Pin11(GPIO17) für ein anderes Projekt brauche und deshalb das Script auf GPIO 27 . Es soll ja die Taktflanke sein ?
Danke und Gruß aus Dorsten
Herbert
Die GPIO Belegung ist lediglich bei dem aller ersten Pi (Revision 1) anders. Alle anderen haben die selben Belegungen, wobei ab Version B+ der Pin Header auf 40 Pins erweitert wurde (davor 26). Die ersten 26 sind jedoch gleich geblieben.
Link: http://tutorials-raspberrypi.de/wp-content/uploads/RaspberyPI_GPIO_Belegung.png
Hallo Felix
Warum ich das nochmal geschickt habe weiss ich leider nicht (tmL)
Danke und sofort eine Frage hinterher.
Ist die Anordnung der GPIO Pins bis Pin 26 anders zwischen der armv61 Version und der armv71?
Ich benutze die armv61 Version mit der 26poligen Leiste wo ich das Script von Dir in der Zeile:
# Zuordnung der GPIO Pins (ggf. anpassen)
…..
LCD_E = 17 hier auf LCD_E = 27
geändert habe.
Nun steht aber bei Dir oben Pin 13 GPIO 21 bei mir aber in der Liste Pin13 GPIO 27 weshalb ich ja da ich Pin11(GPIO17) für ein anderes Projekt brauche und deshalb das Script auf GPIO 27 . Es soll ja die Taktflanke sein ?
Danke und Gruß aus Dorsten
Herbert
Die GPIO Belegung ist lediglich bei dem aller ersten Pi (Revision 1) anders. Alle anderen haben die selben Belegungen, wobei ab Version B+ der Pin Header auf 40 Pins erweitert wurde (davor 26). Die ersten 26 sind jedoch gleich geblieben.
Link: http://tutorials-raspberrypi.de/wp-content/uploads/RaspberyPI_GPIO_Belegung.png
Hallo Felix,
hat alles super geklappt. Danke dafür. Meine Frage ist wie ich die Abstandsmessung auf dem Display anzeigen lassen kann?
Gruß Fabian
Indem du einfach den Abstandssensor per Python/C++ ausließt und den Abstand anzeigen lässt.
Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry Pi
Hallo Felix,
hat alles super geklappt. Danke dafür. Meine Frage ist wie ich die Abstandsmessung auf dem Display anzeigen lassen kann?
Gruß Fabian
Indem du einfach den Abstandssensor per Python/C++ ausließt und den Abstand anzeigen lässt.
Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry Pi
Hallo Felix,
erstmal Lob und Anerkennung für das gute Tutorial. Bei mir hat es fast funktioniert. In der ersten Ausgabe steht ja ein einfacher Text („Es scheint zu zu funktionieren“) Das wird auch alles prima angezeigt. Dann wird aber der 2. Text aufgebaut und nach den ersten n Zeichen gibt es nur noch Textsuppe. Keine Ahnung was das sein soll.
Wie kann das sein?
VG Christian
Hallo Christian,
kannst du die Anschlüsse noch einmal alle überprüfen und ggf. ein Bild posten?
Es gibt auch einen alternativen Weg das Display anzusprechen: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo Felix,
erstmal Lob und Anerkennung für das gute Tutorial. Bei mir hat es fast funktioniert. In der ersten Ausgabe steht ja ein einfacher Text („Es scheint zu zu funktionieren“) Das wird auch alles prima angezeigt. Dann wird aber der 2. Text aufgebaut und nach den ersten n Zeichen gibt es nur noch Textsuppe. Keine Ahnung was das sein soll.
Wie kann das sein?
VG Christian
Hallo Christian,
kannst du die Anschlüsse noch einmal alle überprüfen und ggf. ein Bild posten?
Es gibt auch einen alternativen Weg das Display anzusprechen: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Die Displays am Raspi frustrieren mich. Es gelingt mir nicht, einen Text darzustellen. Wenn ich das Display über den Raspi ansteuere habe ich in der 1. Zeile Rechtecke, die 2. Zeile zeigt nichts. Also richtig. Wenn ich Dein Script starte kommt:
pi@raspberrypi ~ $ sudo python hd44780_test.py
Traceback (most recent call last):
File „hd44780_test.py“, line 75, in
GPIO.setwarnings(False)
AttributeError: ‚module‘ object has no attribute ’setwarnings‘
Mir fällt dazu nichts ein, hoffentlich Dir.
Danke und Gruß
Hast du deine Pakete mal aktualisiert? Klingt danach, dass deine GPIO Version veraltet ist.
Alternativ:
Andernfalls mal dieses Tutorial versuchen: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Die Displays am Raspi frustrieren mich. Es gelingt mir nicht, einen Text darzustellen. Wenn ich das Display über den Raspi ansteuere habe ich in der 1. Zeile Rechtecke, die 2. Zeile zeigt nichts. Also richtig. Wenn ich Dein Script starte kommt:
pi@raspberrypi ~ $ sudo python hd44780_test.py
Traceback (most recent call last):
File „hd44780_test.py“, line 75, in
GPIO.setwarnings(False)
AttributeError: ‚module‘ object has no attribute ’setwarnings‘
Mir fällt dazu nichts ein, hoffentlich Dir.
Danke und Gruß
Hast du deine Pakete mal aktualisiert? Klingt danach, dass deine GPIO Version veraltet ist.
Alternativ:
Andernfalls mal dieses Tutorial versuchen: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Danke, jetzt bekomme ich zwar keine Fehlermeldung mehr, aber auch noch keine Anzeige auf dem Display.
Sicher, dass du die Kabel alle richtig angeschlossen hast? Könnte auch am zu gerinen Kontrast liegen, sodass du nichts siehst.
Ansonsten würde ich einfach mal das I2C Tutorial ausprobieren, damit ist es einfacher.
Danke, jetzt bekomme ich zwar keine Fehlermeldung mehr, aber auch noch keine Anzeige auf dem Display.
Sicher, dass du die Kabel alle richtig angeschlossen hast? Könnte auch am zu gerinen Kontrast liegen, sodass du nichts siehst.
Ansonsten würde ich einfach mal das I2C Tutorial ausprobieren, damit ist es einfacher.
Kontrast ist i.O., ich sehe die Rechtecke in der 1. Zeile. Daraus folgt für mich, daß auch die Verkabelung stimmen sollte. Kontrolliert habe ich sie mehrfach.
Dass die Rechtecke sichtbar sind, muss nicht zwingend heißen, dass dennoch alles stimmt (lediglich, dass das Display Strom bekommt). Aber wenn du sie kontrolliert hast, sollte es daran nicht liegen.
Kontrast ist i.O., ich sehe die Rechtecke in der 1. Zeile. Daraus folgt für mich, daß auch die Verkabelung stimmen sollte. Kontrolliert habe ich sie mehrfach.
Dass die Rechtecke sichtbar sind, muss nicht zwingend heißen, dass dennoch alles stimmt (lediglich, dass das Display Strom bekommt). Aber wenn du sie kontrolliert hast, sollte es daran nicht liegen.
Hey,
hab jetzt auch schon mein erstes Projekt mit einem Display. Danke noch einmal für deine Hilfe. http://christoph-rumpel.com/2016/02/tracking-active-visitors-with-googleanalytics-raspberrypi-in-realtime.
Hast du auch schon Erfahrungen mit mehreren Displays? Ich hab gelesen, dass man für weitere Displays nicht mehr so viele GPIO Pins benötigt aber kann mir das nicht ganz vorstellen. Mein Wunsch wäre 2-3 von diesen Displays anzustecken.
lg
Christoph
Hi Christoph,
dein Projekt klingt interessant, werde ich mir bei Zeiten mal ansehen!
Wenn du mehrere Displays benutzen willst, würde ich das per I2C machen. Zwar könntest du es auch über die GPIOs (und Expander) machen, aber das wird relativ unschön. Mit I2C brauchst du nur wenige Pins: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
LG Felix
Alternativ kannst Du jedes Display mit PIN6 mit einem anderen freien GPIO verbinden. Diese müsstest Du dann als LCD_E1, LCD_E2, … eingangs zuordnen, dafür LCD_E entfernen.
Dann def lcd_send_byte(bits, mode): in
def lcd_send_byte(bits, mode, LCD_E):
ändern.
In def display_init():
muss dann jede (!) Zeile mehrfach ergänzt werden:
je nach Anzahl der Displays.
def lcd_message(message):
[…]
lcd_send_byte(ord(message[i]),LCD_CHR)
wird zu:
Im weiteren wird
GPIO.setup(LCD_E, GPIO.OUT)
mit GPIO.setup(LCD_E1, GPIO.OUT)
und GPIO.setup(LCD_E2, GPIO.OUT) … ersetzt, nach Anzahl der Displays
Das Ende lautet dann:
Das erste Display zeigt dann an, dass es funktioniert, und das zweite den Testtext.
LG Dirk
Hey,
hab jetzt auch schon mein erstes Projekt mit einem Display. Danke noch einmal für deine Hilfe. http://christoph-rumpel.com/2016/02/tracking-active-visitors-with-googleanalytics-raspberrypi-in-realtime.
Hast du auch schon Erfahrungen mit mehreren Displays? Ich hab gelesen, dass man für weitere Displays nicht mehr so viele GPIO Pins benötigt aber kann mir das nicht ganz vorstellen. Mein Wunsch wäre 2-3 von diesen Displays anzustecken.
lg
Christoph
Hi Christoph,
dein Projekt klingt interessant, werde ich mir bei Zeiten mal ansehen!
Wenn du mehrere Displays benutzen willst, würde ich das per I2C machen. Zwar könntest du es auch über die GPIOs (und Expander) machen, aber das wird relativ unschön. Mit I2C brauchst du nur wenige Pins: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
LG Felix
Alternativ kannst Du jedes Display mit PIN6 mit einem anderen freien GPIO verbinden. Diese müsstest Du dann als LCD_E1, LCD_E2, … eingangs zuordnen, dafür LCD_E entfernen.
Dann def lcd_send_byte(bits, mode): in
def lcd_send_byte(bits, mode, LCD_E):
ändern.
In def display_init():
muss dann jede (!) Zeile mehrfach ergänzt werden:
je nach Anzahl der Displays.
def lcd_message(message):
[…]
lcd_send_byte(ord(message[i]),LCD_CHR)
wird zu:
Im weiteren wird
GPIO.setup(LCD_E, GPIO.OUT)
mit GPIO.setup(LCD_E1, GPIO.OUT)
und GPIO.setup(LCD_E2, GPIO.OUT) … ersetzt, nach Anzahl der Displays
Das Ende lautet dann:
Das erste Display zeigt dann an, dass es funktioniert, und das zweite den Testtext.
LG Dirk
Oh super, vielen Dank Felix. Werde ich mir gleich mal anschauen. Danke und lg
Oh super, vielen Dank Felix. Werde ich mir gleich mal anschauen. Danke und lg
Hallo Felix,
super tutorial. Dein script funktioniert einwandfrei und lässt sich gut anpassen.
Leider hat mein Display (4×16) so seine Eigenart. Bei mir ist die 3. und 4. Zeile um
4 Stellen eingerückt. Hast Du einen Tip wie ich die weg bekomme?
LG Martin
Hallo Martin,
ich habe das Skript nicht für 4 Zeilen angepasst oder getestet, daher kann ich dir auf die Schnelle keine zufriedenstellende Antwort geben. Allerdings könntest du es per I2C probieren, das klappt auf jeden Fall auch mit 4 Zeilen Displays: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo Felix,
super tutorial. Dein script funktioniert einwandfrei und lässt sich gut anpassen.
Leider hat mein Display (4×16) so seine Eigenart. Bei mir ist die 3. und 4. Zeile um
4 Stellen eingerückt. Hast Du einen Tip wie ich die weg bekomme?
LG Martin
Hallo Martin,
ich habe das Skript nicht für 4 Zeilen angepasst oder getestet, daher kann ich dir auf die Schnelle keine zufriedenstellende Antwort geben. Allerdings könntest du es per I2C probieren, das klappt auf jeden Fall auch mit 4 Zeilen Displays: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo Felix,
die Einrückung liegt nicht an deinem Script eher an meinem Dislpay.
Nur wie sage ich Ihm das es 4 Stellen weiter rechts anfangen soll zu schreiben?
Hallo Felix,
die Einrückung liegt nicht an deinem Script eher an meinem Dislpay.
Nur wie sage ich Ihm das es 4 Stellen weiter rechts anfangen soll zu schreiben?
Hallo Felix,
mit Deinem Tutorial bis ich sehr gut zurecht gekommen. Doku ist super, insbesondere für Anfänger. Eine Frage zum Programm habe ich noch.
Besten Dank!
Eddi
Hallo Eddi,
wie du siehst baut sich der Text Buchstabe für Buchstabe auf, also verzögert. Dafür muss erst die 2. Zeile leer sein (
lcd_message("")
) und in der ersten Zeile immer ein Buchstabe weiter angezeigt werden. Sobald wir in der 2. Zeile sind, soll der Text der ersten Zeile sich nicht verändern, daher schicke ich den ganzen Text nochmals mit. Wenn das Display den Text der ersten Zeile allerdings im Speicher behält, müsste man es nicht nochmal senden.Hallo Felix,
mit Deinem Tutorial bis ich sehr gut zurecht gekommen. Doku ist super, insbesondere für Anfänger. Eine Frage zum Programm habe ich noch.
Besten Dank!
Eddi
Hallo Eddi,
wie du siehst baut sich der Text Buchstabe für Buchstabe auf, also verzögert. Dafür muss erst die 2. Zeile leer sein (
lcd_message("")
) und in der ersten Zeile immer ein Buchstabe weiter angezeigt werden. Sobald wir in der 2. Zeile sind, soll der Text der ersten Zeile sich nicht verändern, daher schicke ich den ganzen Text nochmals mit. Wenn das Display den Text der ersten Zeile allerdings im Speicher behält, müsste man es nicht nochmal senden.Hallo Felix,
Danke für die schnelle Antwort. Die Antwort brauchte ich um das Programm zu verstehen, da mein Display den Text in der Zeile behält.
Gruß
Eddi
Hallo Felix,
Danke für die schnelle Antwort. Die Antwort brauchte ich um das Programm zu verstehen, da mein Display den Text in der Zeile behält.
Gruß
Eddi
Hallo zusammen,
klasse Skript! Es hat direkt funktioniert…
ABER: Mein Display ist heller als die Schrift. Ich sehe den Text, aber die hellen Kästchen überlagern ihn. Widerstände habe ich von 220, 330, 470 und 10k OHM getestet. Das Verhältnis von Schrift zu Hintergrundbeleuchtung ändert sich nicht. Was kann ich machen?
Hallo, das Problem habe ich auch. Ich habe einen Poti angeschlossen aber egal ob ich den hoch oder runter drehe, der Text wird überlagert. Entweder ist die Schrift und die Kästchen hell oder Schrift und Kästchen dunkel. Nur wenn man das Display schräg hält, kann man erkennen, dass der Text angezeigt wird.
Dann habe ich noch das Problem, daß beim erneuten Starten des Scripts nicht mehr der Text angezeigt wird sondern irgendwelche Zeichen.
Weiß einer Rat?
Gruß Ingo
Hallo zusammen,
klasse Skript! Es hat direkt funktioniert…
ABER: Mein Display ist heller als die Schrift. Ich sehe den Text, aber die hellen Kästchen überlagern ihn. Widerstände habe ich von 220, 330, 470 und 10k OHM getestet. Das Verhältnis von Schrift zu Hintergrundbeleuchtung ändert sich nicht. Was kann ich machen?
Hallo, das Problem habe ich auch. Ich habe einen Poti angeschlossen aber egal ob ich den hoch oder runter drehe, der Text wird überlagert. Entweder ist die Schrift und die Kästchen hell oder Schrift und Kästchen dunkel. Nur wenn man das Display schräg hält, kann man erkennen, dass der Text angezeigt wird.
Dann habe ich noch das Problem, daß beim erneuten Starten des Scripts nicht mehr der Text angezeigt wird sondern irgendwelche Zeichen.
Weiß einer Rat?
Gruß Ingo
Nun werde ich mal den ersten Teil meiner Frage selbst beantworten:
Wenn man an den LCD-PIN: 2. VDD einen Widerstand von 800-900 Ohm anschließt (ich habe einen Poti genommen), dann ist die Displayschrift gut zu erkennen. Vermutlich liegt es am Netzteil, welches ca. 5,2 V abgibt. Das ist wohl zu viel für das Display.
Das Problem mit den Zeichen, die beim 2’ten Starten des Skripts erscheinen, habe ich immer noch. Beim ersten mal aufrufen wird der Text so angezeigt wie er soll. Wenn ich das Skript nochmal aufrufe kommen die wirren Zeichen. Drücke ich allerdings nach dem ersten Aufruf Strg+C, und rufe das Script ein weiteres mal auf, kommt wieder der richtige Text…
Gruß Ingo
Nun werde ich mal den ersten Teil meiner Frage selbst beantworten:
Wenn man an den LCD-PIN: 2. VDD einen Widerstand von 800-900 Ohm anschließt (ich habe einen Poti genommen), dann ist die Displayschrift gut zu erkennen. Vermutlich liegt es am Netzteil, welches ca. 5,2 V abgibt. Das ist wohl zu viel für das Display.
Das Problem mit den Zeichen, die beim 2’ten Starten des Skripts erscheinen, habe ich immer noch. Beim ersten mal aufrufen wird der Text so angezeigt wie er soll. Wenn ich das Skript nochmal aufrufe kommen die wirren Zeichen. Drücke ich allerdings nach dem ersten Aufruf Strg+C, und rufe das Script ein weiteres mal auf, kommt wieder der richtige Text…
Gruß Ingo
Hi Felix,
Bin etwas unsicher bezüglich des schaltplans, fehlt da nicht noch masse am poti?
Gruß Hauschi
Hi Felix,
Bin etwas unsicher bezüglich des schaltplans, fehlt da nicht noch masse am poti?
Gruß Hauschi
Nö, mit dem Poti regelst du die Spannung. Ist wie ein Schalter; der ist in der Regel auch nicht an Masse angeschlossen.
Gruß Ingo
Naja, hat ja 3 Anschlüsse, meiner zumindestens, und scheint so zu sein, daß er eigentlich masse, verbraucher, 5v angeschlossen wird. Geht auch ohne masse, habs probiert. Worin der unterschied liegt, versteh ich nur nicht so ganz…
Nö, mit dem Poti regelst du die Spannung. Ist wie ein Schalter; der ist in der Regel auch nicht an Masse angeschlossen.
Gruß Ingo
Naja, hat ja 3 Anschlüsse, meiner zumindestens, und scheint so zu sein, daß er eigentlich masse, verbraucher, 5v angeschlossen wird. Geht auch ohne masse, habs probiert. Worin der unterschied liegt, versteh ich nur nicht so ganz…
Hallo Felix,
wie bekomme ich ein Sonderzeichen in den Text, z.B. :“Dies ist ein großer Test“
Was muss ich machen, um das ß dazwischen zu schieben?
Gruß Ingo
Na ja, mal wieder zu früh gefragt und zu kurz gegooglet …
So geht’s:
msg2 = "gro342er Test"
342
ist hierbei der Code für das ß …Gruß Ingo
Hallo Felix,
wie bekomme ich ein Sonderzeichen in den Text, z.B. :“Dies ist ein großer Test“
Was muss ich machen, um das ß dazwischen zu schieben?
Gruß Ingo
Na ja, mal wieder zu früh gefragt und zu kurz gegooglet …
So geht’s:
msg2 = "gro342er Test"
342
ist hierbei der Code für das ß …Gruß Ingo
Hallo Felix,
ich habe es endlich geschafft, das PIR-Modul mit dem LCD-Display zusammen laufen zu lassen. Bei Bewegung wird auf dem Display eine Nachricht angezeigt.
(ich hatte mal wieder Probleme richtig einzurücken…
Kann es sein, daß bei dem LCD-Programm TAB und Leerzeichen- Einrücken vermischt ist, es aber trotzdem läuft?)
Nun möchte ich noch, daß das Display nach einer time.sleep-Zeit gelöscht wird bzw. in Zeile eins und zwei 16 Leerzeichen reingeschrieben werden. Leider gehen mir hier die Ideen aus. Kannst du mir auf die Sprünge helfen?
Gruß Ingo
Hey Ingo,
hast du schon versucht einen String mit 16 Leerzeichen zu übergeben?
Es kann sein, dass Tabs und Leerzeichen – dank WordPress – gemischt sind. Wenn es übereinstimmt (z.B. Einrückung erster Ebene ein Tab, zweiter Ebene vier Leerzeichen, usw.) sollte es keine Probleme geben, auch wenn es nicht sonderlich übersichtlich ist. Ich muss das bei Zeiten mal durchschauen.
LG Felix
Moment habe ich folgende Code als weiteren (Text) eingefügt:
damit geht es aber ich dachte, ggf. gibt es einen einzelnen Befehl, der das Display löscht.
Wenn man sich das Script bei „hier“ ansieht, wird es ohne Enters und Einrücken angezeigt. Der Download ist ok und kann verwendet werden. Wenn man sich das dann auf einen usb kopiert und auf einem Rechner mit Texteditor anschaut, ist es wieder ohne Formatierung. Man kann es in Word öffnen und wieder speichern. Dann ist es auch im Texteditor richtig eingerückt..
Gruß Ingo
Der Windows Texteditor ist (das kann ich aus Erfahrung sagen) totaler Mist 😀
Ich nutze hauptsächlich Notepad++
Hallo Felix,
ich habe es endlich geschafft, das PIR-Modul mit dem LCD-Display zusammen laufen zu lassen. Bei Bewegung wird auf dem Display eine Nachricht angezeigt.
(ich hatte mal wieder Probleme richtig einzurücken…
Kann es sein, daß bei dem LCD-Programm TAB und Leerzeichen- Einrücken vermischt ist, es aber trotzdem läuft?)
Nun möchte ich noch, daß das Display nach einer time.sleep-Zeit gelöscht wird bzw. in Zeile eins und zwei 16 Leerzeichen reingeschrieben werden. Leider gehen mir hier die Ideen aus. Kannst du mir auf die Sprünge helfen?
Gruß Ingo
Hey Ingo,
hast du schon versucht einen String mit 16 Leerzeichen zu übergeben?
Es kann sein, dass Tabs und Leerzeichen – dank WordPress – gemischt sind. Wenn es übereinstimmt (z.B. Einrückung erster Ebene ein Tab, zweiter Ebene vier Leerzeichen, usw.) sollte es keine Probleme geben, auch wenn es nicht sonderlich übersichtlich ist. Ich muss das bei Zeiten mal durchschauen.
LG Felix
Moment habe ich folgende Code als weiteren (Text) eingefügt:
damit geht es aber ich dachte, ggf. gibt es einen einzelnen Befehl, der das Display löscht.
Wenn man sich das Script bei „hier“ ansieht, wird es ohne Enters und Einrücken angezeigt. Der Download ist ok und kann verwendet werden. Wenn man sich das dann auf einen usb kopiert und auf einem Rechner mit Texteditor anschaut, ist es wieder ohne Formatierung. Man kann es in Word öffnen und wieder speichern. Dann ist es auch im Texteditor richtig eingerückt..
Gruß Ingo
Der Windows Texteditor ist (das kann ich aus Erfahrung sagen) totaler Mist 😀
Ich nutze hauptsächlich Notepad++
die 16 Leerzeichen in („“) werden hier nicht angezeigt…!
Du musst den Code in <pre>…</pre> setzen 🙂
die 16 Leerzeichen in („“) werden hier nicht angezeigt…!
Du musst den Code in <pre>…</pre> setzen 🙂
Hallo,
ich habe das Problem, das das, was ich auf dem Display ausgeben möchte, nicht immer in der gewünschten Zeile ausgegeben wird, sondern mal oben, mal unten und auch nicht immer linksbündig. Ich möchte 2 Werte wiederholt ausgegeben und habe dafür erstmal eine Schleife eingebaut, um das auzuprobieren.
Was kann der Grund sein, dass die Werte nicht immer linksbündig in der ersten, bzw. 2. Zeile angezeigt werden?
Gruß,
Patrick
Hallo Patrick,
wieviele Zeichen+Zeilen hat dein Display? Hast du das Skript angepasst?
Was du auch versuche könntest ist eine I2C Verbindung. Dadurch sparst du auch GPIOs: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo,
ich habe das Problem, das das, was ich auf dem Display ausgeben möchte, nicht immer in der gewünschten Zeile ausgegeben wird, sondern mal oben, mal unten und auch nicht immer linksbündig. Ich möchte 2 Werte wiederholt ausgegeben und habe dafür erstmal eine Schleife eingebaut, um das auzuprobieren.
Was kann der Grund sein, dass die Werte nicht immer linksbündig in der ersten, bzw. 2. Zeile angezeigt werden?
Gruß,
Patrick
Hallo Patrick,
wieviele Zeichen+Zeilen hat dein Display? Hast du das Skript angepasst?
Was du auch versuche könntest ist eine I2C Verbindung. Dadurch sparst du auch GPIOs: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo,
es ist ein Standard 16×2 Display. Die I2C Steuerung hatte ich als nächstes auf dem Plan. Bin noch Raspberry Greenhorn.
Für mich sieht es so aus, dass der Cursor, bzw. der Ausgangspunkt, ab dem geschrieben werden soll, nicht auf den Zeilenanfang und auch nicht auf die richtige Zeile gesetzt wird. Aber das wird im Script ja nur in 2 Zeilen definiert.
Das war es, was ich auch vermutet hatte. Nämlich, dass es mehr Zeichen hat (20 statt 16) und dadurch der Text danach nicht korrekt überschrieben wird. An den Funktionen (vor allem das Einrücken mit Leerzeichen) hast du nichts geändert oder?
Ist etwas schwierig ohne das Modul da zu haben, Hilfe zu leisten 🙁
Hallo,
es ist ein Standard 16×2 Display. Die I2C Steuerung hatte ich als nächstes auf dem Plan. Bin noch Raspberry Greenhorn.
Für mich sieht es so aus, dass der Cursor, bzw. der Ausgangspunkt, ab dem geschrieben werden soll, nicht auf den Zeilenanfang und auch nicht auf die richtige Zeile gesetzt wird. Aber das wird im Script ja nur in 2 Zeilen definiert.
Das war es, was ich auch vermutet hatte. Nämlich, dass es mehr Zeichen hat (20 statt 16) und dadurch der Text danach nicht korrekt überschrieben wird. An den Funktionen (vor allem das Einrücken mit Leerzeichen) hast du nichts geändert oder?
Ist etwas schwierig ohne das Modul da zu haben, Hilfe zu leisten 🙁
Hallo.
Vielen Dank für das tolle Tutorial.
Hab mein 2×16 Display jetzt auch erfolgreich am Laufen. Leider hatte ich keinen Poti oder Widerstand. Scheint aber trotzdem ohne Probleme zu funktionieren, am 5 und am 3,3V Anschluss (etwas dunkler).
Ich habe das Script dahingehend mit einer while Schleife erweitert, dass die Uhrzeit angezeigt wird, sowie Datum. Das funktioniert auch. Aber leider versetzt er mit mit jeder Aktualisierung die Position des Textes. Ich komme einfach nicht dahinter, woran das liegt.
Hat jemand eine Idee? Im Code finde ich keinen Fehler:
while True:
lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
lcd_string(datetime.datetime.now().strftime(‚%d/%B/%Y‘))
lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
lcd_string(datetime.datetime.now().strftime(‚%H:%M:%S‘))
time.sleep(1)
Habe auch alle Verbindungen überprüft und durchgemessen. Das Verhalten ist schon eigenartig, kein Muster zu erkennen. Der Text springt willkürlich. Er hängt sogar noch ein komisches Sonderzeichen an, sieht aus wie eine Neun… verrückt…
Hallo.
Vielen Dank für das tolle Tutorial.
Hab mein 2×16 Display jetzt auch erfolgreich am Laufen. Leider hatte ich keinen Poti oder Widerstand. Scheint aber trotzdem ohne Probleme zu funktionieren, am 5 und am 3,3V Anschluss (etwas dunkler).
Ich habe das Script dahingehend mit einer while Schleife erweitert, dass die Uhrzeit angezeigt wird, sowie Datum. Das funktioniert auch. Aber leider versetzt er mit mit jeder Aktualisierung die Position des Textes. Ich komme einfach nicht dahinter, woran das liegt.
Hat jemand eine Idee? Im Code finde ich keinen Fehler:
while True:
lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
lcd_string(datetime.datetime.now().strftime(‚%d/%B/%Y‘))
lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
lcd_string(datetime.datetime.now().strftime(‚%H:%M:%S‘))
time.sleep(1)
Habe auch alle Verbindungen überprüft und durchgemessen. Das Verhalten ist schon eigenartig, kein Muster zu erkennen. Der Text springt willkürlich. Er hängt sogar noch ein komisches Sonderzeichen an, sieht aus wie eine Neun… verrückt…
Jetzt ist mir aufgefallen, dass die Sprünge verschwinden, wenn ich noch ein display_init einbaue. Aber dann wird mal die eine, dann die andere Zeile beschrieben.
Nun habe ich mal vom GPIO 4 auf 25 gewechselt und alles super.
Möglicherweise hängt das damit zusammen, dass noch irgendetwas im Hintergrund läuft. Den GPIO4 hatte ich mal in einem anderen Projekt in Verwendung…
Jetzt ist mir aufgefallen, dass die Sprünge verschwinden, wenn ich noch ein display_init einbaue. Aber dann wird mal die eine, dann die andere Zeile beschrieben.
Nun habe ich mal vom GPIO 4 auf 25 gewechselt und alles super.
Möglicherweise hängt das damit zusammen, dass noch irgendetwas im Hintergrund läuft. Den GPIO4 hatte ich mal in einem anderen Projekt in Verwendung…
Hallo , ich habe mal eine Frage ich benutze ein Piface2, kann ich an den anderen GPIO die nicht für den SPI Bus genutzt werden das Display ansteuern ?
Gruß
Andi
Hallo Andi,
in diesem Tutorial wird doch gar kein SPI Pin verwendet?
Du kannst es aber auch per I2C ansteuern: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo , ich habe mal eine Frage ich benutze ein Piface2, kann ich an den anderen GPIO die nicht für den SPI Bus genutzt werden das Display ansteuern ?
Gruß
Andi
Hallo Andi,
in diesem Tutorial wird doch gar kein SPI Pin verwendet?
Du kannst es aber auch per I2C ansteuern: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo,
Cooles Tutorial!
Allerdings stürzt mein Raspberry immer ab sobald ich das Skript ausführe. Außerdem leuchtet das Display zwar aber es ist keine Schrift drauf. Ich habe bei der Helligkeit einen 470Ohm Wiederstand und beim Kontrast 10kOhm.
Vielleicht kann mir ja einer helfen. Danke! 🙂
Gruß Ben
Hallo Ben,
klingt danach, als ob etwas nicht richtig angeschlossen ist.
Alternativ kannst du es damit versuchen: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo,
Ich habe das gleiche Problem.
@Felix: Wie kann ich das Problem lösen ohne I2C?
Ich habe ein LCD 1602a V2. 0
Verkabelung hab ich doppelt und dreifach geprüft. Muss ich etwa am Code was ändern oder liegt das an der installierten Software?
Danke
Grüße Fritz
Hallo,
Cooles Tutorial!
Allerdings stürzt mein Raspberry immer ab sobald ich das Skript ausführe. Außerdem leuchtet das Display zwar aber es ist keine Schrift drauf. Ich habe bei der Helligkeit einen 470Ohm Wiederstand und beim Kontrast 10kOhm.
Vielleicht kann mir ja einer helfen. Danke! 🙂
Gruß Ben
Hallo Ben,
klingt danach, als ob etwas nicht richtig angeschlossen ist.
Alternativ kannst du es damit versuchen: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo,
Ich habe das gleiche Problem.
@Felix: Wie kann ich das Problem lösen ohne I2C?
Ich habe ein LCD 1602a V2. 0
Verkabelung hab ich doppelt und dreifach geprüft. Muss ich etwa am Code was ändern oder liegt das an der installierten Software?
Danke
Grüße Fritz
Hi, aktuell spiele ich mit einem T-Cobbler Plus v2.2 von Kuman. Leider läuft mein Display nicht ganz, es ist ein wenig älter, sollte aber noch funktionieren. Sobald ich den Kontrast an die Masse anschließe, erscheinen ganz kurz Kästchen, diese sind aber nach kurzer Zeit wieder weg.
Mein Aufbau ist der gleiche wie hier.
Hat jemand ne Idee?
Hast du mal ins Datenblatt geschaut, ob die Pins auch wirklich übereinstimmen?
Hi Felix,
Datenblatt vom Cobbler oder vom Display?
Vom Cobbler habe ich keins, aber gehe davon mal aus das sie gleich sind.. eventuell kannst du dich ja direkt per Mail mal an mich wenden..
Grüße,
Julian
Der Cobbler hat eigentlich kein Datenblatt nötig, da es ja nur eine Verlängerung ist. Also vom Display.
Hab genau das Display schon an einem 1. Pi genutzt und funktionierte, daher eigentlich schon.
http://puu.sh/pgjnN/b1ecf37fb3.jpg – hier noch nen Bild wie es aktuell aussieht
Hi, aktuell spiele ich mit einem T-Cobbler Plus v2.2 von Kuman. Leider läuft mein Display nicht ganz, es ist ein wenig älter, sollte aber noch funktionieren. Sobald ich den Kontrast an die Masse anschließe, erscheinen ganz kurz Kästchen, diese sind aber nach kurzer Zeit wieder weg.
Mein Aufbau ist der gleiche wie hier.
Hat jemand ne Idee?
Hast du mal ins Datenblatt geschaut, ob die Pins auch wirklich übereinstimmen?
Hi Felix,
Datenblatt vom Cobbler oder vom Display?
Vom Cobbler habe ich keins, aber gehe davon mal aus das sie gleich sind.. eventuell kannst du dich ja direkt per Mail mal an mich wenden..
Grüße,
Julian
Der Cobbler hat eigentlich kein Datenblatt nötig, da es ja nur eine Verlängerung ist. Also vom Display.
Hab genau das Display schon an einem 1. Pi genutzt und funktionierte, daher eigentlich schon.
http://puu.sh/pgjnN/b1ecf37fb3.jpg – hier noch nen Bild wie es aktuell aussieht
Hallo Felix
Dank deinem Tutorial konnte ich meinen Raspi Temperatursensor mit einem LCD ausstatten. Dabei habe ich für RS den (noch freien) GPIO Pin 19 statt 4 verwendet und das Skript entsprechend angepasst. Funktioniert einwandfrei. Als Anfänger machen diese Erfolgserlebnisse viel Spass. Danke !
Hallo Felix
Dank deinem Tutorial konnte ich meinen Raspi Temperatursensor mit einem LCD ausstatten. Dabei habe ich für RS den (noch freien) GPIO Pin 19 statt 4 verwendet und das Skript entsprechend angepasst. Funktioniert einwandfrei. Als Anfänger machen diese Erfolgserlebnisse viel Spass. Danke !
Bei mir funktioniert komischerweise jedes Zeichen bis auf den Buchstaben „O“ (groß und kleingeschrieben) . Versuche ich dennoch ein O zu schreiben, wird die erste Zeile komplett weiß, die zweite zeigt gar nichts mehr an.
Nach weiterer Untersuchung scheint es alle Zeichen zu betreffen, dessen Charcode in binär auf 1111 endet.
Das Problem wurde gelöst. Die Grounds waren nicht richtig verbunden.
Bei mir funktioniert komischerweise jedes Zeichen bis auf den Buchstaben „O“ (groß und kleingeschrieben) . Versuche ich dennoch ein O zu schreiben, wird die erste Zeile komplett weiß, die zweite zeigt gar nichts mehr an.
Nach weiterer Untersuchung scheint es alle Zeichen zu betreffen, dessen Charcode in binär auf 1111 endet.
Das Problem wurde gelöst. Die Grounds waren nicht richtig verbunden.
Danke für die Anleitung!
Eine wichtige Info fehlt mir: wie viel Strom zieht das LCD-Modul? Ohne Beleuchtung dürfte der Strom nicht der Rede wert sein, aber wieviel Ampere muss das Netzteil liefern, um beim Aktivieren der Beleuchtung die Banane nicht schlappmacht?
Das sollte im Datenblatt des Moduls stehen. Bei den üblichen (hier verwendeten) LCD Displays reicht die Versorgung des Raspberry Pi’s aus und es ist keine externe Stromquelle nötig.
Danke für die Anleitung!
Eine wichtige Info fehlt mir: wie viel Strom zieht das LCD-Modul? Ohne Beleuchtung dürfte der Strom nicht der Rede wert sein, aber wieviel Ampere muss das Netzteil liefern, um beim Aktivieren der Beleuchtung die Banane nicht schlappmacht?
Das sollte im Datenblatt des Moduls stehen. Bei den üblichen (hier verwendeten) LCD Displays reicht die Versorgung des Raspberry Pi’s aus und es ist keine externe Stromquelle nötig.
Hi Felix,
ich habe an meinen Rpi2 einen RFID MFRC522 angeschlossen und dadurch alle spi-pins belegt.So weit ich weiß sind die SPI bus wichtig zu kommunizieren und ich bin unsicher ob ich die einfach an anderen pins(ohne SPI) anschließen kann , auch wenn ich in Skript Änderung vornehme.
Danke
Berni
Bis zu zwei SPI Module kannst du ohne Probleme anschließen.
Das Display braucht nur normale GPIOs, du kannst es aber auch einfach per I²C steuern (hier zum Tutorial).
Hi Felix,
ich habe an meinen Rpi2 einen RFID MFRC522 angeschlossen und dadurch alle spi-pins belegt.So weit ich weiß sind die SPI bus wichtig zu kommunizieren und ich bin unsicher ob ich die einfach an anderen pins(ohne SPI) anschließen kann , auch wenn ich in Skript Änderung vornehme.
Danke
Berni
Bis zu zwei SPI Module kannst du ohne Probleme anschließen.
Das Display braucht nur normale GPIOs, du kannst es aber auch einfach per I²C steuern (hier zum Tutorial).
Hallo 🙂
Erstmal Danke für dsa Tutorial.
Leider klappt es bei mir nicht so ganz 🙁
Wenn ich das Display angeschlossen habe und den Pi anmache leuchtet das Display und die obere Zeile ist mit 16 Weißen Feldern gefüllt (alle Pixel aktiv). Die 2. Zeile ist leer. Starte ich nun dein Script so verschwindet die 1. Zeile, es erscheint aber auch kein Text; d.h. das Display kann zwar angesprochen werden (die 1. Zeile verschwindet) aber kein kein Text erscheint. Woran kann das liegen? Welche(r) Pin(s) sind (ist) für den Text zuständig?
Es ist nicht ein Pin, sondern 4 für den Text verantwortelich (Datenleitung 4-7). Klingt sehr nach einem Wackelkontakt bzw. falscher Verbindung. Überprüf nochmal alle Pins.
Ansonsten würde ich dir sowieso die Steuerung per I2C raten: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo 🙂
Erstmal Danke für dsa Tutorial.
Leider klappt es bei mir nicht so ganz 🙁
Wenn ich das Display angeschlossen habe und den Pi anmache leuchtet das Display und die obere Zeile ist mit 16 Weißen Feldern gefüllt (alle Pixel aktiv). Die 2. Zeile ist leer. Starte ich nun dein Script so verschwindet die 1. Zeile, es erscheint aber auch kein Text; d.h. das Display kann zwar angesprochen werden (die 1. Zeile verschwindet) aber kein kein Text erscheint. Woran kann das liegen? Welche(r) Pin(s) sind (ist) für den Text zuständig?
Es ist nicht ein Pin, sondern 4 für den Text verantwortelich (Datenleitung 4-7). Klingt sehr nach einem Wackelkontakt bzw. falscher Verbindung. Überprüf nochmal alle Pins.
Ansonsten würde ich dir sowieso die Steuerung per I2C raten: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hi, da ich mit hardware relativ unerfahren bin frage ich einfach mal, die Anleitung funktioniert auch mit dem RPi zero oder?
Ja, funktioniert auch damit.
Alternativ: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Ok, danke 😉
Hi, da ich mit hardware relativ unerfahren bin frage ich einfach mal, die Anleitung funktioniert auch mit dem RPi zero oder?
Ja, funktioniert auch damit.
Alternativ: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Ok, danke 😉
Statt wie oben angemerkt „cleanup“ zu löschen, kann man einfach das Display mit 0x08 ausschalten…
So kann man auch einen blinkenden Text erzeugen (durch aus und einschalten), da nur das Display ausgeschaltet aber der Datenspeicher nicht gelöscht wird
Den den HD44780 Befehlssatz gibt es hier (für LCD1602 und andere kompatible):
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD#Welche_Befehle_versteht_das_LCD.3F
Statt wie oben angemerkt „cleanup“ zu löschen, kann man einfach das Display mit 0x08 ausschalten…
So kann man auch einen blinkenden Text erzeugen (durch aus und einschalten), da nur das Display ausgeschaltet aber der Datenspeicher nicht gelöscht wird
Den den HD44780 Befehlssatz gibt es hier (für LCD1602 und andere kompatible):
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD#Welche_Befehle_versteht_das_LCD.3F
Kleine Ergänzung zum Testskript – erhöht auch das Verständnis:
Die ersten beiden Befehle (0x33 und 0x32) sind überflüssig, da sie das Display im 8-Bit-Modus initialisieren und zudem identisch sind (die letzten beiden Bit werden vom Controller ignoriert). Danach wird mit 4-Bit-Modus überschrieben = die ersten beiden Zeilen kann man löschen.
Kleine Ergänzung zum Testskript – erhöht auch das Verständnis:
Die ersten beiden Befehle (0x33 und 0x32) sind überflüssig, da sie das Display im 8-Bit-Modus initialisieren und zudem identisch sind (die letzten beiden Bit werden vom Controller ignoriert). Danach wird mit 4-Bit-Modus überschrieben = die ersten beiden Zeilen kann man löschen.
Ich kenne mich noch nicht so mit dem Zeug aus aber wollte es trotzdem mal versuchen weil das echt cool aussieht. Bei dem Jumper Kabel, welches brauche ich da, es gibt verschiedene arten auf Amazon.
Es gibt 3 Arten: Male-Female, Male-Male, Female-Female. Wenn du das Display direkt anschlißen willst, so brauchst du Female-Female. Wenn du es über ein Breadboard anschließen möchtest, so sind Male-Female die richtigen für dich.
LG, Felix
Ich kenne mich noch nicht so mit dem Zeug aus aber wollte es trotzdem mal versuchen weil das echt cool aussieht. Bei dem Jumper Kabel, welches brauche ich da, es gibt verschiedene arten auf Amazon.
Es gibt 3 Arten: Male-Female, Male-Male, Female-Female. Wenn du das Display direkt anschlißen willst, so brauchst du Female-Female. Wenn du es über ein Breadboard anschließen möchtest, so sind Male-Female die richtigen für dich.
LG, Felix
Hallo Felix
Ich scheine noch irgendetwas falsch zu machen. Beim einschalten des PIs leuchtet das LCD1602 auf und zeigt auch die hübschen weißen Quadrate an aber stoppt dann alle Dienste und fährt runter! Nach deiner Vorgabe bin ich vorgegangen, kann mir das aber nicht erklären was das Problem seien könnte. Hast du einen Tipp für dieses Phänomen?
LG
Freddy
Ursache gefunden, hät ich früher drauf kommen können.
Die SD-CARD hatte mit einmal keine root Partition mehr, jetzt läuft es wieder wie gewohnt 😉
LG
Freddy
Hallo Felix
Ich scheine noch irgendetwas falsch zu machen. Beim einschalten des PIs leuchtet das LCD1602 auf und zeigt auch die hübschen weißen Quadrate an aber stoppt dann alle Dienste und fährt runter! Nach deiner Vorgabe bin ich vorgegangen, kann mir das aber nicht erklären was das Problem seien könnte. Hast du einen Tipp für dieses Phänomen?
LG
Freddy
Ursache gefunden, hät ich früher drauf kommen können.
Die SD-CARD hatte mit einmal keine root Partition mehr, jetzt läuft es wieder wie gewohnt 😉
LG
Freddy
Hallo, ich bin scheinbar zu doof…
Ich habe den BANANA-PI sowohl in der ersten Variante , als auch einen M2+. Bei beiden habe ich das Display (ohne I2C) angeschlossen nach Vorgabe, ebenso auch alle Programme installiert, geladen etc. doch es passiert absolut NICHTS, ganz im Gegenteil, es kommt dann immer der Fehler:
„root@bananapi ~ # python hd44780_test.py
Traceback (most recent call last):
File „hd44780_test.py“, line 14, in
LCD_CHR = GPIO.HIGH
NameError: name ‚GPIO‘ is not defined
1 root@bananapi ~ # “
Ich habe es wie gesagt bei beiden getestet, doch nichts ändert sich. bei dem I2C-Versuch funzt es auch nicht, da meine Adresse wohl eine andere ist, er findet das Display nämlich nicht unter i2cdetect -y 1 sondern unter i2cdetect -y 2…
Kannst Du mir mal aktuelle skripts etc. senden, welche auch für den Banana geeignet sind? Am liebsten für den Banana-Pi 1.
Danke im Voraus
Die RPi.GPIO Bibliothek muss natürlich installiert sein. Auf Raspbian ist sie das automatisch, wie es bei BananaPi aussieht, weiß ich nicht.
Die hab ich installiert. ich bekomm auf das Display absolut nichts, und ich hab auch vom Display 3 verschiedene ausgetestet, um einen Defekt am Display auszuschliessen.
Tut mir leid, da ich keinen BananaPi habe, kann ich dir nicht sagen, was falsch gelaufen sein könnte 🙁
Okay, vergiss es…nun klappt es…es hat mercurial gefehlt…hab zwar absolut keinen Play, für was das teil gut sein soll, aber nu klappt es…jetzt muss ich nur mal schauen, wo ich ein Script her bekomme, welches mir Akkustand, Auslastung etc. anzeigt^^
Hallo, ich bin scheinbar zu doof…
Ich habe den BANANA-PI sowohl in der ersten Variante , als auch einen M2+. Bei beiden habe ich das Display (ohne I2C) angeschlossen nach Vorgabe, ebenso auch alle Programme installiert, geladen etc. doch es passiert absolut NICHTS, ganz im Gegenteil, es kommt dann immer der Fehler:
„root@bananapi ~ # python hd44780_test.py
Traceback (most recent call last):
File „hd44780_test.py“, line 14, in
LCD_CHR = GPIO.HIGH
NameError: name ‚GPIO‘ is not defined
1 root@bananapi ~ # “
Ich habe es wie gesagt bei beiden getestet, doch nichts ändert sich. bei dem I2C-Versuch funzt es auch nicht, da meine Adresse wohl eine andere ist, er findet das Display nämlich nicht unter i2cdetect -y 1 sondern unter i2cdetect -y 2…
Kannst Du mir mal aktuelle skripts etc. senden, welche auch für den Banana geeignet sind? Am liebsten für den Banana-Pi 1.
Danke im Voraus
Die RPi.GPIO Bibliothek muss natürlich installiert sein. Auf Raspbian ist sie das automatisch, wie es bei BananaPi aussieht, weiß ich nicht.
Die hab ich installiert. ich bekomm auf das Display absolut nichts, und ich hab auch vom Display 3 verschiedene ausgetestet, um einen Defekt am Display auszuschliessen.
Tut mir leid, da ich keinen BananaPi habe, kann ich dir nicht sagen, was falsch gelaufen sein könnte 🙁
Okay, vergiss es…nun klappt es…es hat mercurial gefehlt…hab zwar absolut keinen Play, für was das teil gut sein soll, aber nu klappt es…jetzt muss ich nur mal schauen, wo ich ein Script her bekomme, welches mir Akkustand, Auslastung etc. anzeigt^^
Hallo,
erst mal: danke für dieses sehr hilfreiche Tutorial! Ich habe das Python-Skript nach C umgeschrieben und es funktioniert perfekt.
Ich habe nur eine Frage: was bewirken die Anweisungen die in display_init() gesendet werden (0x33, 0x32, 0x28, usw.)? Ich weiß aus dem Datenblatt meines Displays welche Bits für welche Anweisung gesetzt werden müssen (8-Bit), nur: welches Bit aus dem Byte in lcd_send_byte gehört zu welchem Eingang des Displays?
Beispiel:
im Datenblatt steht um den Cursor anzuzeigen müssen diese Bits gesendet werden:
(RS) D7 D6 D5 D4 D3 D2 D1 D0
(0 ) 0 0 0 0 1 1 1 0
wenn ich diese Bits nun mit lcd_send_byte übertragen will, muss ich dann die Bits im Byte genau so setzen, also so:
00001110 = 0x0E?
Was mir außerdem helfen würde die Funktionsweise genauer zu verstehen: Wenn ich das Display im 4-Bit-Modus betreibe, in welcher Reihenfolge müssen die Bits dann gesendet werden? Zuerst die die eigentlich zu D7 bis D4 gehören würden oder diese als Zweites?
Hallo,
erst mal: danke für dieses sehr hilfreiche Tutorial! Ich habe das Python-Skript nach C umgeschrieben und es funktioniert perfekt.
Ich habe nur eine Frage: was bewirken die Anweisungen die in display_init() gesendet werden (0x33, 0x32, 0x28, usw.)? Ich weiß aus dem Datenblatt meines Displays welche Bits für welche Anweisung gesetzt werden müssen (8-Bit), nur: welches Bit aus dem Byte in lcd_send_byte gehört zu welchem Eingang des Displays?
Beispiel:
im Datenblatt steht um den Cursor anzuzeigen müssen diese Bits gesendet werden:
(RS) D7 D6 D5 D4 D3 D2 D1 D0
(0 ) 0 0 0 0 1 1 1 0
wenn ich diese Bits nun mit lcd_send_byte übertragen will, muss ich dann die Bits im Byte genau so setzen, also so:
00001110 = 0x0E?
Was mir außerdem helfen würde die Funktionsweise genauer zu verstehen: Wenn ich das Display im 4-Bit-Modus betreibe, in welcher Reihenfolge müssen die Bits dann gesendet werden? Zuerst die die eigentlich zu D7 bis D4 gehören würden oder diese als Zweites?
Hallo, danke erst mak für das Tutorial.
Leider klappt bei mir die Anzeige nicht. In der oberen Reihe werden Kästchen angezeigt, die untere Reihe ist leer. Da ich statt GPIO17 (Pin11), GPIO5 (Pin 29) nutzen muss, habe ich dies auch entsprechend auf LCD_E = 5 angepasst. Starte ich nun das Skript, leuchten in beiden Reihen die Kästchen auf, es kommen jedoch keine Buchstaben. Die Belegung habe ich bereits geprüft. Da ich aus Platzgründen auf minimalste Bauweise zurückgreifen muss, läuft das ganze bei mir auch einem Zero und mit hd44780. Hat jemand einen Tip woran es liegen könnte?
Ich empfehle generell die Steuerung per I2C: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Hallo, danke erst mak für das Tutorial.
Leider klappt bei mir die Anzeige nicht. In der oberen Reihe werden Kästchen angezeigt, die untere Reihe ist leer. Da ich statt GPIO17 (Pin11), GPIO5 (Pin 29) nutzen muss, habe ich dies auch entsprechend auf LCD_E = 5 angepasst. Starte ich nun das Skript, leuchten in beiden Reihen die Kästchen auf, es kommen jedoch keine Buchstaben. Die Belegung habe ich bereits geprüft. Da ich aus Platzgründen auf minimalste Bauweise zurückgreifen muss, läuft das ganze bei mir auch einem Zero und mit hd44780. Hat jemand einen Tip woran es liegen könnte?
Ich empfehle generell die Steuerung per I2C: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Vielen Dank für das ausführliche Tutorial.
Ich hatte bisher keine Erfahrung mit dem Raspberry PI. Dieses Tutorial hat mich dazu animiert ein kleines Projekt zu starten. Ich habe einen alten Radio entkernt und durch einen selbstgebauten Squeezebox Player (der auf einem Raspi läuft) ersetzt.
Da ich selbst sehr von den Anleitungen hier profitiert habe, möchte ich meine Erfahrungen weitergeben.
Hier ist der Link zu meinem Projekt: https://gitlab.com/brokenframe/squeeze-raspi
Grüße,
Torsten
Moin
Warum werden am Display die Eingänge 1-4 nicht genutzt?
Es hat bei mir nur funktioniet wenn ich ein POT zwischen pin3 und GROUND mache, sonst ist das Kontrast zu hell.
Hey,
zunächst danke für diese Anleitung!
Was mcih als Anfänger total verwirrt ist, dass bei deinem Belegungsplan
Pin 6 (GND) mehrmals belegt wird. Spielt das dann im Script ne rolle wenn ich
das ändern muss weil ich kein Breadboard hab?