Forum: Mikrocontroller und Digitale Elektronik ESP8266 und ext OLED


von Al. K. (alterknacker)


Lesenswert?

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?

von Timmo H. (masterfx)


Lesenswert?

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ D1, /*
data=*/ D2);
u8g2_SetI2CAddress(&u8g2, 0x3C * 2); //bzw. 0x3D

: Bearbeitet durch User
von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

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.

von Al. K. (alterknacker)


Lesenswert?

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!

von Al. K. (alterknacker)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Al. K. (alterknacker)


Lesenswert?

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
von Stefan F. (Gast)


Lesenswert?

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.

von Johannes S. (Gast)


Lesenswert?

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.

von Al.Kn. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.