Raspberry Pi schreibt nicht auf LCD mit I2C Anschluss

  • Hallo,
    ich versuche momentan die aktuelle Temperatur in meinem Zimmer auf einem LCD anzeigen zu lassen.
    Der Temperatur Sensor funktioniert auch, das Problem ist jetzt aber, dass ich von dem Raspberry Pi nichts auf das LCD ( http://goo.gl/HUrRjS ) schreiben kann.
    Ich habe an dem LCD das Backlight, die i2c Pins und die Stromversorgung verbunden. Es wird auch an dem Raspberry Pi erkannt, dass jedoch nur wackelig,
    also es wird manchmal erkannt und kurz danach wird es wieder nicht erkannt und kurz danach verbindet es sich wieder.
    Aber wenn ich jetzt mit einem Programm, wenn das LCD erkannt wird, versuche Text auf das LCD zu schreiben, gibt das Programm keinen Fehler aus,
    allerdings erscheint auch nichts auf dem LCD. Ich habe auch schon versucht die Kabel mehrmals wieder rauszuziehen und danach wieder reinzustecken,
    es hat aber auch nichts gebracht. I2C ist auf dem Raspberry Pi auch aktiviert. Es handelt sich hierbei um einen Raspberry Pi 3 Modell B.
    Hat jemand eine Lösung für das Problem?

  • Hast du den Kontrast mit einem Poti eingestellt?
    Zieht das Display zu viel Strom vom Pi?
    Verwende ein anderes Netzteil


    PS: ich habe mir 2 von den Dingern für insgesamt 1,60€ aus China bestellt. Lassen aber noch auf sich warten.

  • Hast Du die Adresse des seriell/parallel-Wandlers richtig eingegeben?
    Hast Du es mal mit einer anderen Adresse probiert?
    Was ist mit den Abschlusswiderständen?
    Hast Du externe verwendet oder sind interne Pullup aktiviert?
    Hast Du es mal mit einem anderen I²C Slave probiert?
    Oder aber, wie von Berlin_pi schon gefragt, ist es der Klassiker: Kontrast


  • Hast du den Kontrast mit einem Poti eingestellt?
    Zieht das Display zu viel Strom vom Pi?
    Verwende ein anderes Netzteil


    PS: ich habe mir 2 von den Dingern für insgesamt 1,60€ aus China bestellt. Lassen aber noch auf sich warten.


    Nein, ich habe den Kontrast nicht mit einem Poti eingestellt, sondern lasse alles direkt über den Pi laufen.
    Zu viel Strom sollte es auch nicht ziehen, da das Hintergrundlicht über einen anderen Pi läuft.

  • Moin,
    ich habe ein paar Fragen, um dein Problem besser zu verstehen.


    Du schreibst

    Code
    Es wird auch an dem Raspberry Pi erkannt, dass jedoch nur wackelig, 
    also es wird manchmal erkannt und kurz danach wird es wieder nicht erkannt und kurz danach verbindet es sich wieder.


    Wer erkennt das denn??
    Benutzt du ein bestimmtes Programm?? Wenn ja welches und wie rufst du es auf??


    Dann schreibst du noch

    Code
    Aber wenn ich jetzt mit einem Programm, wenn das LCD erkannt wird, versuche Text auf das LCD zu schreiben, gibt das Programm keinen Fehler aus, allerdings erscheint auch nichts auf dem LCD.


    Mit welchem Programm versuchst du es?? Bitte nenne das Programm und beschreibe was du machst.


    Warum ich das alles wissen will??
    Weil das ein stinknormales Display mit einem intregierten I2C-Controller ist.
    Es muss aber wie ein normales Display behandelt werden.


    Aber nachdem du meine Fragen beantwortest hast, sehen wir weiter.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.


  • Hallo,
    um das LCD zu erkennen, verwende ich

    Code
    i2cdetect -y 1

    Dort erscheint manchmal, wenn ich den Befehl ausführe die Adresse "3e".
    Wenn ich den Befehl aber öfters ausführe, wird dort wieder "--" statt "3e" angezeigt und das wechselt sich halt immer wieder ab.


    Zu dem Programm: Ich weiß nicht, was ich gemacht habe, aber jetzt gibt es doch einen Fehler aus:


    Der Code der den Fehler auswirft:


    Der Versuch auf das Display zu schreiben:

    Code
    import lcddriver
    import sys
    
    
    lcd = lcddriver.lcd()
    try : 
       lcd.lcd_display_string(str(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]))
    except:
       print("Usage: \"Output-String\" \"Line in decimal\" \"Offset in decimal\" ")
       print("Example: \"Hello World!\" 1 0")


    Allerdings komme ich grademal bis zu "lcd = lcddriver.lcd()". Dann kommt der Fehler.

  • Moin,
    danke für deine Ausführungen. Ich denke das dreamshader recht hat und du den Wackelkontakt weg bekommen musst.


    An welcher Spannung hast du das Display angeschlossen?? Bei einem 3,3V Anschluss musst du, laut Datenblatt 2 Kondensatoren einbauen.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.


  • Moin,
    danke für deine Ausführungen. Ich denke das dreamshader recht hat und du den Wackelkontakt weg bekommen musst.


    An welcher Spannung hast du das Display angeschlossen?? Bei einem 3,3V Anschluss musst du, laut Datenblatt 2 Kondensatoren einbauen.


    Gruss Bernd


    Ich habe das Display an 5V angeschlossen.
    Die Kontakte sitzen jetzt auch fest und berühren sich auch, der Wackelkontakt ist aber immernoch da.

  • Moin,
    es gibt noch eine Möglichkeit den I2C-Bus zu scannen.

    Code
    i2cdetect -q 1

    Es kommt noch eine Frage, die du mit "y" beantworten musst.


    In den Manpages von i2cdetect steht, das manchmal das das angesprochenene Gerät es einem übel nimmt.


    Wenn es bei meinem Vorschlag auch zu diesen Aussetzern kommt, wprde ich mein Programm in Ordnung bringen.


    Und dann, ohne Test, sofort das Programm einsetzen.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Hallo aspirat2110,


    sorry, dass ich noch mal auf Deine Ausgangsfrage zurückkommen muss.


    Du schriebst:



    Ich habe an dem LCD das Backlight, die i2c Pins und die Stromversorgung verbunden.


    WIE hast Du es verbunden? Ich frage deswegen, weil wir hier vor etwa 2 Jahren - Dreamshader wird sich noch daran erinnern ;) - so einen Ekschpärdde gehabt hatten, der die absiolierten Leitungen in die Platinen-Bohrungen gesteckt hatte. Der hatte komischerweise auch so irre Verbindungsprobleme.


    Das kam aber erst heraus, als er ein Photo seiner Schalte gepostet hatte.


    Die richtigen Strippen in die richtigen Löcher gesteckt und mit heißem Lötkolben unterstützt Lötzinn zum Schmelzen gebracht, hatte damals mächtig Wirkung gezeigt.


    Deswegen: Verbinden, Steckbrett stecken, Löten ist was anderes als Strippen in Platinenbohrungen legen.

    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().


  • Ich habe jetzt mit

    Code
    i2cdetect -q 1

    den I2C-Bus gescannt. Es erscheint auch dort nur wackelig, also manchmal da, manchmal nicht.
    Wenn ich versuche das Programm zu starten kommt immernoch der selbe Fehler.
    Automatisch zusammengefügt:[hr]


    Das eingesetzte Display hat direkt Pins, also habe ich mit female-female Jumper Kabeln die I2C-Pins und den VCC- und den GND- Pin mit den entsprechenden Pins auf dem Pi verbunden.


  • 1.
    Als Attachment hinzugefügt
    Also halt ein anderes LCD, das aber auch einen I2C Anschluss hat.


    2. Die Kabel sitzen fest, und die Verbindung von den Kabeln ist auch stabil, nur halt am Rasperry Pi nicht.