16x2 LCD über i2C an RaspberryPi

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    bin neu hier im Forum und allgemein auch neu bei in der "RaspberryPi-Bastler-Gemeinde".

    So ich beschäftige mich zur Zeit mit dem Anschluss eines 16x2 LCD an den RaspberryPi, also erstmal theoretisch... Das ganze sollte möglichst wenig Pins belegen also über den I2C-Bus angeschlossen werden.

    Nun aber zu meiner Frage:

    Es gibt ja bei Pollin, den sagen wir mal einfachen Weg, diesen Komplett-Bausatz:

    LCD-Bausatz

    Und noch einen anderen zu dem ich im Internet nichts gefunden habe aber rein theoretisch auch funktionieren könnte:

    Ich kaufe mir den das LCD-I2C Modul und verbinde es mit dem Display und dem RPi und spare theoretisch 10€.

    Dazu habe ich ein paar Fragen: Kann der 2. Weg überhaupt so funktionieren? Und wie steure ich das ganze dann an? Die Platine von Adafruit Industries ist ja auf deren Website einigermaßen erklärt, aber für "meine" Lösung kann ich ja wohl kaum alles aus deren Tutorial 1:1 übernehmen... Ich hab gelesen das jeder Chip eine eigene Busadresse hat, und die wird sicher irgendwo beim Code am RPi wichtig, oder?
    Und dann sieht es für mich so aus als könnte ich am LCD-I2C Modul Displays mit 2 verschiedenen Anschlüssen nutzen. Das hier und hier. Beim Ersten siehts so aus als würde das über die Kontakte links vom Display angeschlossen und es mach irgendwie den Eindruck als währen die Buchstaben aus Segmenten dargestellt. Beim Zweiten Display wird es wohl über die Kontakte unter dem Display angeschlossen und es mach den Eindruck das die Buchstaben aus Pixeln bestehen... Gibts außer den genannten noch andere Unterschiede?

    Also ich hoffe das ich mein Problem halbwegs verständlich erklären konnte:D und es währe nett wenn mir jemand helfen könnte;)

    MfG c3ntry

  • Danke für den Link hab mich wohl bei der Suchfunktion zu sehr auf die Begriffe rund um LCD gestützt...

    In dem Thread hat jemand auch das LCD-I2C Modul von Pollin, da klappt es nicht wirklich und irgendwann schreibt der Derjenige nichts mehr. Hat irgendjemand hier schon einmal erfolgreich das Display über das LCD-I2C angschlossen ?

  • Eigendlich hatte ich das Pollin-Modul direkt erwähnt. Das Modul entspricht der Schaltung in RasPi und I2C+SPI
    Du mußt nur die Widerstände R3 und R4 weglassen, die können den Pi beschädigen.

    Die beiden Anschlussmöglichkeiten sind für unterschiedliche Displaybauformen. Die 16x2, 16x4, 20x4 haben meist eine Reihe mit 16Pins für X1 , die 'längeren' 24x2, 40x2 haben 2x8Pins und kommen an X2. Elektrisch und bei der Funktionsweise sind die identisch.

    Wenn Du das verlinkte Pythonscript nutzen willst, muß Du nur die benutzten Pins anpassen.

  • Oke das ist ja schonmal gar nicht schlecht werde dann mal bestellen.
    Soll ich R3 und R4 ganz weglassen oder brücken ?

    Edit: Nicht bestückt heißt wohl einfach weglassen :rolleyes:

    Einmal editiert, zuletzt von c3ntry (8. September 2013 um 11:22)


  • In dem Thread hat jemand auch das LCD-I2C Modul von Pollin, da klappt es nicht wirklich und irgendwann schreibt der Derjenige nichts mehr. Hat irgendjemand hier schon einmal erfolgreich das Display über das LCD-I2C angschlossen ?

    Hehe, ich glaube ich bin derjenige, den du meinst, oder? Ja ich hab nach meinem Ermessen alles richtig gemacht aber nichts auf die Anzeige bekommen.
    Allerdings kam ich ja zu der Erkenntnis, dass das Display nach dem Anstecken ohne Ansteuerung eine Zeile mit ausgefüllten Kästchen, und die zweite ohne anzeigt. Das war ja bei mir nicht der Fall.
    Nachdem ich das Display vom I2C-Modul entfernt und direkt an den Pi gehängt hab war das nicht anders. Also lautete mein Schluss: Display defekt.

    Jetzt hab ich mir das hier [Anzeige] besorgt, mit direkt aufgestecktem I2C Modul. Hier wird zwar beim Anstecken das oben erwähnte Verhalten gezeigt. Jedoch war das Beste, was ich hier erreicht habe, das Anzeigen von kryptischen Zeichen auf der ersten Zeile ohne Hintergrundbeleuchtung.

    Mich würde also sehr interessieren, ob und wie deine Lösung aussieht?

  • Meine Lösung ist/war der Bausatz von Adafruit weil ich mir vorallem Sorgen um die Softwareunterstützung bei dem Pollin Modul gemacht habe. Bei Adafruit ist alles sauber dokumentiert und das Display passt direkt auf den Pi. Ist ein toller Bausatz allerdings verlgeichsweise Teuer, aber ich dachte mir bevor ich die 12-13€ für Display + I2C Board in den Sand setze investiere ich lieber ein bisschen mehr und bin auf der sicheren Seite. (Bevor du den Bausatz jetzt bei Pollin bestellst, bestell ihn lieber woanders, dort ist er oft Billiger und du bekommst statt dem Blau/Weiß LCD ein RGB LCD wo du die Hintergrundbeleuchtung zusätzlich steuern kannst)

    Ich hab hier noch ein 16x4 LCD von Pollin, ich versuch mal das in den Nächsten Tagen anzuschließen (über I2C mit MCP23S17), ich poste dann hier mal die Ergebnisse.

    Ansonsten hast du bei dem Display die Rezession gesehen ? Dort spricht jemand die nötigen Bibliotheken für den Raspberry Pi an, vielleicht kannst du das mal ausprobieren.

  • Hm, genau das hätte ich wohl auch machen sollen :)

    Ich hab die Rezension gelesen und am liebsten hätte ich den Autor kontaktiert, aber das war leider nicht möglich. Er spricht ja im wesentlichen nur die PCF8574-Extension und die schon enthaltene lcd.h an. Ich hab daraufhin das hier gefunden:

    http://wiringpi.com/extensions/i2c-pcf8574/

    Aber da ich leider nicht der Profi in Sachen C-Programmierung bin, komme ich alleine mit

    Code
    pcf8574Setup (int pinBase, int i2cAddress) ;

    nicht wirklich aus...

  • pinBase ist die virtuelle Basisadresse zum Ansprechen der Pins des Chips.
    i2cAddress ist die I2C Adresse des Chips

    Wenn der PCF8574 unter 0x20 bei i2cdetect -y 1 aufscheint, und du definierst pcf8574setup(0x60, 0x20), dann hast du virtuelle GPIOs für die Ausgänge. Also 0x60 für Ausgang 1, 0x61 für Ausgang 2, usw.
    Damit brauchst du nicht immer ein komplettes Byte zusammenbauen und an den PCF8574 schicken.

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!

  • Nach einer längeren Pause (mein RasPi twittert inzwischen die Temperaturen :)) würde ich mich nun gern wieder auf das Display stürzen...

    Da ich mit Python nach wie vor keinen Erfolg habe, würde ich C probieren... allerding kann ich nicht wirklich C programmieren.
    Gibts auf Basis dieses Setups hier irgendwo ein Tutorial oder kann mir jemand mal ein Beispielprogramm aufsetzen?

    Alleine komm ich nicht weiter so.


  • Ist das für mich gedacht? Weil damit kann ich nichts anfangen :)

    eigentlich an den TO der I2C und LCD sucht finde das Modul interessanter weil man da jedes bis 4x20 günstiger angeschlossen bekommt als poplige 2x16

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (27. November 2013 um 23:11)

  • Also ich habe zum einen das modul von pollin und zum anderen so ein chinateil. Beide funktionieren einwandfrei. Dokumentiert waren beide und da der hd controller industrie standart hat braucht man nur aus dem datenblatt heraus lesen an welchem pin des pcf welcher display pin hängt

    Edit: wenn du ein tutorial möchtest schreibe ich dir gerne eins. Entweder in C oder FreeBasic. mit wiringPi als gpio schnittstelle

    BASIC für den PI -> Tutorial

    Einmal editiert, zuletzt von ruohki (29. November 2013 um 08:34)

  • Das ist kein Problem da ich extra zu beginn angefangen habe C zu lernen, dann aber auf FreeBasic umgestiegen bin. Also habe ich meine bisherigen Sources konvertiert. Der vom LCD liegt hier noch irgenwo rum :). Ich mach mich heute abend mal bei. Ich habe selbst nur ein 16x4 und 20x4 Display aber ich glaube ob x2 oder x4 spielt im allgemeinen keine Rolle. Nur beim Positionieren des Cursors muss man dann schaun aber das werde ich in das Tutorial einbinden.

    WiringPi bietet übrigends eine Fertige LCD Library. Diese funktionierte bei mir auch mit den Displays direkt am PI mit einem I2C Modul nur leider nicht (PCF8574 Port Expander). Ich habe es mir dann zur Aufgabe gemacht das Teil trotzdem zum laufen zu bringen :) Nicht ganz einfach aber es geht wenn man die Datenblätter studiert hat ^^

  • Hier erstmal ein C Beispiel Code für das Pollin I2C Modul

    Das Modul muss auf 0x22 gejumpert sein oder man passt den code an. Die Pinbelegung des PCF Expanders ist (PCF (virtualGPIO) -> HD)

    P0 (100) -> DB4
    P1 (101) -> DB5
    P2 (102) -> DB6
    P3 (103) -> DB7
    P4 (104) -> RS
    P5 (105) -> R/W
    P6 (106) -> E / Strobe
    P7 (107) -> Backlight (LED+)

    Nutzt man ein anderes Modul muss man die virtual Pins anpassen

    Der Code gibt einen kleinen Rahmen, Datum und Uhrzeit auf einem 4x16 Display aus.
    Nutzt man an 2 zeilen Display ist LINE1 Zeile 1 auf dem Display und LINE3 Zeile 2 auf dem Display.

    Das Tutorial folgt

    BASIC für den PI -> Tutorial

    Einmal editiert, zuletzt von ruohki (29. November 2013 um 14:11)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!