OLED SSD1306 - Zeigt nur jede zweite Linie an

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • OLED SSD1306 - Zeigt nur jede zweite Linie an

      Hallo erstmal,
      ich habe ein Problem mit diesem OLED 128x64 / SSD1306 Display. Ich benutze das Beispielprgramm von Hkipnik. Leider wird bei mir nur jede zweite Zeile angezeigt.

      1. wird nicht angezeigt

      2. funktioniert

      3. wird nicht angezeigt

      ...


      Wenn ich das Display in der Init invertiere, bleiben die gleichen Zeilen schwarz. Spricht dies für einen Hardware Fehler? oder hatte jemand schon ähnliche Probleme?


      Gruß

      Mathias
    • ich habs mit diesem SPI Demo probiert =>

      hkipnik schrieb:

      Hallo Peer,

      das Display wird schon von Bascom direkt unterstützt im I2C Mode.
      Bascom Hilfe

      Dazu must du den Widerstand auf I2C löten und den DC und CS Pin auf GND den Res auf VCC setzen.
      Pullup Wiederstände für SCL und SDA nicht vergessen.

      Für Spi kannst du das Programm mal versuchen.

      SSD1306-Demo.zip

      Gruß
      Hkipnik
      in der init sollte, soweit ich das erkennen kann, schon auf 64 Zeilen umgestellt sein, oder?
    • Ich hab auch noch son Ding liegen (allerdings von Waveshare, ist billiger, hat aber oben einige Zeilen in gelb), wollte es eh mal an Bascom benutzen (eins läuft schön an ESP8266 unter B4R). Ha, da fällt mir ein, ich kann im B4R Compiler mal den Arduino einstellen und dann das Hex-File hier posten. Allerdings benutze ich I2C, kann man aber auf der Platine umlöten (s.o.).
      Mal schaun, ob ich eine der beiden Varianten heute noch fertig bringe.

      In der Init wird ja zwischen verschiedenen Controllern gewählt, die aber beide 64 Zeilen können. Also daran wird es wohl nicht liegen.
      Aber, für das das 32 Zeilen Display meine ich -im alten Forum gab's einiges dazu- ist leider weg- hatte Hkipnik auch eine Demo gemacht. Könnte vielleicht jetzt durcheinander geraten sein.

      Gruß, elektron
    • Hier mal die Fotos vom Display. Wenn ich die Startline verschiebe bleiben die gleichen Zeilen dunkel. Ich denk fast, dass das Display nen Defekt hat. Hab auch mal die Kontakte nachgelötet. Brachte leider nichts...

      Gruß Mathias
      Dateien
      • display1.jpg

        (82,25 kB, 14 mal heruntergeladen, zuletzt: )
      • display2.jpg

        (77,69 kB, 12 mal heruntergeladen, zuletzt: )
      • display3.jpg

        (165,98 kB, 11 mal heruntergeladen, zuletzt: )
      • rückseite.jpg

        (287,45 kB, 22 mal heruntergeladen, zuletzt: )
    • Bei mir sieht die Unterseite ziemlich anders aus. Da gibt's zwei 0-Ohm-Widerstände, BS0,BS1, die man entsprechend umlöten muss für I2C bzw. SPI.

      Ich hab' aber gerade 1h lang versucht, das Ding am UNO mit Arduino IDE und I2C zum Laufen zu bringen, aber ohne Erfolg, obwohl es, wenn ich es an meinen ESP dran hänge, läuft. Es gibt halt zuviele Varianten, z.B. UNO REV3 oder nur UNO, und dann noch die Definitionen von SCL und SCA, und dann noch CS und RST.

      @Hkipnik: Hast Du auch die I2C-Variante gepostet? Das Bascom-Sample kann wohl keine Grafik, denke ich.

      Gruß, elektron
    • @Zrieschling
      bis du dir mit den Widerständen sicher? Die derzeitige Kombination finde ich nicht in der aufgedruckten Tabelle. Wenn die angegebenen Widerstände für diese Betriebsart gesetzt werden sollen, dann müssten alle anderen raus, oder umgekehrt. Oder liege ich da falsch?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • elektron schrieb:

      Bei mir sieht die Unterseite ziemlich anders aus. Da gibt's zwei 0-Ohm-Widerstände, BS0,BS1, die man entsprechend umlöten muss für I2C bzw. SPI.

      Ich hab' aber gerade 1h lang versucht, das Ding am UNO mit Arduino IDE und I2C zum Laufen zu bringen, aber ohne Erfolg, obwohl es, wenn ich es an meinen ESP dran hänge, läuft. Es gibt halt zuviele Varianten, z.B. UNO REV3 oder nur UNO, und dann noch die Definitionen von SCL und SCA, und dann noch CS und RST.
      Hast du den DC Pin vom Display auf GND liegen und Reset auf VCC??
      sonst passt die Adresse nicht.


      elektron schrieb:

      @Hkipnik: Hast Du auch die I2C-Variante gepostet? Das Bascom-Sample kann wohl keine Grafik, denke ich.


      Ja hier im Beitrag 33
    • Danke,
      hatte es übersehen. Man weiss manchmal nicht mehr, ob das noch im alten Forum war.
      Mit obiger Demo läufts schön am Arduino. CS bleibt offen.
      Läuft's auch am XMega?

      Meines hat noch die Unsteigkeit bei Zeile 16 (Waveshare-Typ von Eckstein) beim Übergang von gelb auf Blau, kostet aber nur 1/3. Wird hiermit etwas besser:
      If py>16 Then py=py-1 (py von der Stftleiste gemessen).
      Bei Wetterdaten fällt's nicht auf...

      @Hkipnik: Das GLCD240-7 am Xmega guckt mich immer noch trüb an. Hast Du es auch aufgegeben?

      Gruß, elektron
    • SSD1306 128x64 Pixel zeigt nur jede zweite Zeile an

      Hallo an alle Könner,

      auch bei mir wird beim Oled nur jede zweite Zeile angezeigt, aber nicht grundsätzlich. Mit dem Programm:
      Demo for SH1106 - SSD1306 128x64 Pixel
      '
      ' Hardware: SainSmart 1.3" I2C Serial 128X64 blue
      ' Adafruit 1.3" I2C 128x64
      ' oder ähnlich
      ' use 1024 Byte Frame Buffer
      ' I2C Mode
      '
      '
      '
      ' Date:22.05.2014
      ' Email: Hkipnik@aol.com
      ' Copyright (c) 2013 Hkipnik. All rights reserved.

      funktioniert alles, ist aber viel zu lang und ich brauche keine Grafik.

      Mit dem Programm:


      $regfile = "m328pdef.dat"
      $crystal = 16000000
      $hwstack = 40
      $swstack = 16
      $framesize = 32

      Config Scl = Portc.5 ' used i2c pins
      Config Sda = Portc.4
      Config Twi = 400000 ' i2c speed
      I2cinit : Waitms 5

      $lib "i2c_twi.lbx"
      $lib "glcdSSD1306-I2C.lib" ' override the default lib with this special one

      #if _build < 20784
      Dim ___lcdrow As Byte , ___lcdcol As Byte ' dim these for older compiler versions
      #endif

      Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"

      '-------------------------------- Program --------------------------------------
      I2cstart
      I2cwbyte &H78
      I2cwbyte &H00
      I2cwbyte &HDA 'Enable COM Left/Right remap
      I2cwbyte &H22
      I2cstop

      Do
      Cls
      Setfont Font12x16
      Lcdat 1 , 30 , "SSD1306"

      Setfont Font6x8
      Lcdat 3 , 34 , "Text testing"
      Lcdat 4 , 45 , "Font 6x8"
      Wait 1

      Showpic 0 , 0 , Pic
      Wait 1
      Loop

      End

      '===============================================================================
      $include "font12x16.font"
      $include "font6x8.font"
      Pic:
      $bgf "picture.bgf"

      wird nur jede zweite Zeile angezeigt. Ich würde aber gerne die Lib glcdSSD1306-I2C.lib benutzen, da sie weniger Platz braucht.
      Welche Einstellung wird da wohl nicht stimmen. Mit dem 128x32-Display funktioniert auch dieses Programm, aber nicht mit dem 128x64-Display und die Einstellung

      Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"

      hat wohl überhaupt keinen Einfluss.

      vielen Dank im Voraus!

      fraureuther