// https://spacehal.github.io/docs/arduino/oled

#include <Arduino.h>
#include <U8x8lib.h>  // Bibliothek U8g2 einbinden

// Konstruktur für I2C OLED 0,96 mit 4 Pins (ohne Reset Pin)
// Beim Arduino Uno werden folgende Pins für das OLED Display verwendet
// OLED       Arduino UNO
// -----     -------------
// GND        GND
// VCC        5V
// SCL        SCL (oder A5)
// SDA        SDA (oder A4)

U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);         

// Die Größe des OLED 0.96 Displays 
#define U8LOG_WIDTH 16
#define U8LOG_HEIGHT 8

// Konfigurieren des Terminals (U8X8LOG)
uint8_t u8log_buffer[U8LOG_WIDTH*U8LOG_HEIGHT];
U8X8LOG u8x8log;

void setup(void)
{
  u8x8.begin();
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  
  u8x8log.begin(u8x8, U8LOG_WIDTH, U8LOG_HEIGHT, u8log_buffer);
  u8x8log.setRedrawMode(1);     // 0: Update screen with newline, 1: Update screen for every char  
}

unsigned long t = 0;
// Gibt das Ergebnis von millis() dem Display aus
void loop(void) {
  if ( t < millis() ) {
    t = millis() + 10000;          // alle 10 Sekunden
    u8x8log.print("\f");           // \f = form feed: Löscht das Display
  }
  u8x8log.print("millis=");
  u8x8log.print(millis());
  u8x8log.print("\n");
  delay(20);
}