Ich verwende gerade u8g2_font_6x12_tr.
Mein Tab für die Anzeige wie beim seriellen Monitor:
#if defined(DEBUG) && (DEBUG == OLED)
#include <Wire.h>
#include <U8g2lib.h>
//U8G2_SSD1306_128X64_NONAME_F_HW_I2C oled(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
U8G2_SH1106_128X64_NONAME_F_HW_I2C oled(U8G2_R0);
#endif
void setup_OLED() {
#if defined(DEBUG) && (DEBUG == OLED)
oled.begin();
#endif
}
void anzeigeOLED(const char * text) {
#if defined(DEBUG) && (DEBUG == OLED)
const byte ZEILEMAX = 8;
const byte SPALTEMAX = 22;
static char buf[ZEILEMAX][SPALTEMAX] = {" ", " ", " ", " ", " ", " ", " ", " "};
oled.clearBuffer(); // clear the internal memory
oled.setFont(u8g2_font_6x12_tr); // choose a suitable font
for (byte zeile = 0; zeile < ZEILEMAX; zeile++) {
oled.setCursor(0, ((zeile + 1) * 8) - 1);
for (byte spalte = 0; spalte < (SPALTEMAX - 1); spalte++) {
if (zeile < (ZEILEMAX - 1)) {
buf[zeile][spalte] = buf[zeile + 1][spalte];
if (buf[zeile][spalte] == '\0') {
break;
}
} else {
buf[zeile][spalte] = text[spalte];
buf[zeile][spalte + 1] = '\0';
if (buf[zeile][spalte] == '\0') {
break;
}
}
oled.print(buf[zeile][spalte]);
}
}
oled.sendBuffer(); // transfer internal memory to the display
#endif
}