U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ D1, /* data=*/ D2); https://www.ebay.de/itm/162465864403 Mein Display hat 2 Adressmöglichkeiten. Muss das auch übergeben werden?
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ D1, /* data=*/ D2); u8g2_SetI2CAddress(&u8g2, 0x3C * 2); //bzw. 0x3D
:
Bearbeitet durch User
Al. K. schrieb: > Ebay-Artikel Nr. 162465864403 Wow, mit heftigem Deutsch-Zuschlag: https://www.aliexpress.com/item/Free-shipping-Yellow-blue-double-color-128X64-OLED-LCD-LED-Display-Module-For-Arduino-0-96/32233342471.html?spm=a2g0s.9042311.0.0.4a7f4c4drxSDOn Deine Frage verstehe ich nicht so ganz: Das Display hat eine Adresse, welche, ergibt sich daraus, welche Brücke geschlossen ist. Ich habe das Ding an einem Arduino mit einer Standardlibrary einfach in Betrieb genommen, das wird sich doch für den ESP auch finden?
Manfred schrieb: > Ich habe das Ding an einem Arduino mit einer Standardlibrary einfach in > Betrieb genommen, das wird sich doch für den ESP auch finden? Sicher. Die u8g2 Library hat er ja schon angedeutet, dann gibt's da noch eine von Adafruit (https://github.com/adafruit/Adafruit_SSD1306 + https://github.com/adafruit/Adafruit-GFX-Library), jemand hat hier im Forum seine Version präsentiert (Beitrag "SSD1306/1309 Library zum Darstellen von Text auf OLED Displays") und dann gibt es da noch meine (http://stefanfrings.de/esp8266/WIFI-Kit-8-OLED.zip). Bei der Library von Adafruit muss man ggf. irgendwo im Quelltext bei "Wire.begin()" die Pin Nummern als Parameter angeben, falls die Standard-Pins nicht passen.
Stefanus F. schrieb: > Sicher. Die u8g2 Library hat er ja schon angedeutet, dann gibt's da noch > eine von Adafruit (https://github.com/adafruit/Adafruit_SSD1306 + > https://github.com/adafruit/Adafruit-GFX-Library), jemand hat hier im > Forum seine Version präsentiert und dann gibt es da noch meine > (http://stefanfrings.de/esp8266/WIFI-Kit-8-OLED.zip). Die habe ich immer noch in Nutzung, mit den Arduino. Reicht für fast alle meiner Fälle. ..aber hier kann man/muss man in der Include die Adresse des I2C Displays eingeben. Bei der Include welche ich jetzt für den Esp Teste wird keine Adresse übergeben, also kann die falsch sein und das Display nichts anzeigen. ehe ich es selbst teste, geht deine Include auch für den ESP, müsste eigentlich!
Habe geteste, bei mir geht deine LIB nicht im ESP. Habe aber in der Referenz https://github.com/olikraus/u8g2/wiki/u8g2reference das gefunden https://github.com/olikraus/u8g2/wiki/u8g2reference#seti2caddress void u8g2_SetI2CAddress(u8g2_t *u8g2, uint8_t adr) Befehl zur Adressübergabe, leider geht der Aufruf nicht.
Al. K. schrieb: > geht deine Include auch für den ESP, müsste eigentlich! Sie war sogar primär für den ESP8266 gemacht und erst später angepasst worden, um auf theoretisch allen Arduino Kompatiblen µC laufen zu können. > bei mir geht deine LIB nicht im ESP. Wenn Du Hilfe haben möchtest, dann werde etwas konkreter.
Stefanus F. schrieb: > Wenn Du Hilfe haben möchtest, dann werde etwas konkreter. Werde darauf bestimmt anderweitig zurückkommen. Da du gesagt hast das es geht habe ich mich daran gemacht und meinen Fehler zu suchen. Jetzt klappt es mit deiner LIB. Das erklärt aber nicht warum es damit nicht geht. U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ D1, /* data=*/ D2); Könnte es mit der I2C Adressierung zu tun haben? MfG
:
Bearbeitet durch User
Al. K. schrieb: > Da du gesagt hast das es geht Klar geht es, den Screenshot auf der Webseite habe ich mit genau diesem Programm erstellt. > Jetzt klappt es mit deiner LIB. Lass uns an deinen Erkenntnissen Teilhaben. Was war der Fehler? > Könnte es mit der I2C Adressierung zu tun haben? Könnte. Welche Adresse ist denn in der Library vorgegeben? Wenn du einen Logic-Analysator hast, kannst du das ganze schnell "von außen" messen. Wenn du noch keinen hast, kauf Dir einen. Wirst du früher oder später ohnehin brauchen. Die 10€ lohnen sich auf jeden Fall.
die voreingestellte Adresse ist zumindest lt. Doku und Code 0x78, also müsste es passen. Al. K. schrieb: > void u8g2_SetI2CAddress(u8g2_t *u8g2, uint8_t adr) > > Befehl zur Adressübergabe, leider geht der Aufruf nicht. ist ja auch C++, also
1 | u8g2.setI2CAddress(0x78); |
und 'Aufruf geht nicht' gibts nicht, entweder gibt es eine Fehlermeldung vom Compiler (die man googlen/posten kann) oder es gibt einen Laufzeitfehler.
Johannes S. schrieb: > u8g2.setI2CAddress(0x78); u8g2.setI2CAddress(0x78); So war mein Aufruf! Stefanus F. schrieb: > Lass uns an deinen Erkenntnissen Teilhaben. Was war der Fehler? Es war ein typischer PC Davor Sitz Fehler.;-)) Beim Übertragen von deinen Programm in Meines, hatte ich eine Zeile falsch gesetzt. Komme jetzt nicht an meinen Arbeit-PC ran um sie zu benennen. Es hatte aber für mich genügt das du gesagt hast, dass das Programm läuft. Dadurch war klar das der Fehler bei mir lag.
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.