Hab’ die Tage schon mal nach einem OLED mit I2C bei mir gesucht aber nur welche mit SPI voreingestellt gefunden. Heute ist mir noch eingefallen, dass mein CurrentRanger ja auch ein OLED hat und das auch mit I2C läuft, also abmontiert und an den Heltec angeschlossen. Läuft als “second screen”! :-)
#include <Arduino.h>
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2_1(U8G2_R0, /* clock=*/ 26, /* data=*/ 48);
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2_2(U8G2_R0, /* reset=*/ 21, /* clock=*/ 18, /* data=*/ 17);
void setup(void) {
u8g2_1.begin();
u8g2_2.begin();
}
void loop(void) {
u8g2_1.clearBuffer(); // clear the internal memory
u8g2_1.setFont(u8g2_font_ncenB08_tr); // choose a suitable font
u8g2_1.drawStr(0,10,"Hello World! - extern"); // write something to the internal memory
u8g2_1.sendBuffer(); // transfer internal memory to the display
u8g2_2.clearBuffer(); // clear the internal memory
u8g2_2.setFont(u8g2_font_ncenB08_tr); // choose a suitable font
u8g2_2.drawStr(0,10,"Hello World! - onboard"); // write something to the internal memory
u8g2_2.sendBuffer(); // transfer internal memory to the display
delay(1000);
}
Wie gesagt kursieren einige Anleitungen für die “Umlötung” der DollarTec-Displays von SPI zu I2C, ggf. ist jetzt bei dir auch ein Widerstand zu stark / zu schwach und daher will es nicht am Heltec, versuche gerne mal den code oben, ist das Standard-Beispiel aus der U8g2 lib erweitert auf 2 displays.
Jetzt müsstest du nur noch herausfinden, wie wir das SW-Display auf HW umstellen können, ich denke mit SW wird der Bildaufbau zu langsam sein und bremst so die Waage aus.
