/*
* E-Paper "Hello World" Test voor Wokwi met de U8g2 Library
* Doel: Een betrouwbare basis leggen die compileert en werkt.
*/
#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
// --- PIN CONFIGURATIE ---
// Gebaseerd op uw diagram.json
// SPI pinnen (SCK=18, MOSI=23) worden door de Hardware SPI van U8g2 gebruikt.
#define EPD_CS 5
#define EPD_DC 22
#define EPD_RST 21
// De BUSY pin is niet nodig voor de U8g2 constructor die we gebruiken.
// --- U8g2 CONSTRUCTOR ---
// Dit is de specifieke constructor voor het 2.9" (296x128) SSD1681 e-paper display.
// _F_ staat voor "Full Buffer", wat het beste is voor e-paper.
// _4W_HW_SPI staat voor 4-Wire Hardware SPI.
// De argumenten zijn: (rotation, cs_pin, dc_pin, rst_pin)
U8G2_SSD1681_296X128_F_4W_HW_SPI u8g2(U8G2_R1, EPD_CS, EPD_DC, EPD_RST);
void setup(void) {
Serial.begin(115200);
Serial.println("U8g2 E-Paper Test Starten...");
// Start het display
u8g2.begin();
// Teken de "Hello World" boodschap
Serial.println("Scherm bijwerken...");
// De paged-loop, vergelijkbaar met GxEPD2
u8g2.firstPage();
do {
// Stel het lettertype en de kleur in
u8g2.setFont(u8g2_font_ncenB14_tr); // Een mooi, groot lettertype
// Bereken de positie om de tekst te centreren
const char* text = "Hallo Wereld!";
int textWidth = u8g2.getStrWidth(text);
int x = (u8g2.getDisplayWidth() - textWidth) / 2;
int y = u8g2.getDisplayHeight() / 2;
// Teken de string op de berekende positie
u8g2.drawStr(x, y, text);
} while (u8g2.nextPage());
Serial.println("Klaar! 'Hallo Wereld!' zou op het scherm moeten staan.");
// E-paper heeft geen expliciete 'hibernate' nodig met U8g2, het stopt met updaten.
}
void loop(void) {
// Leeg laten, we updaten maar één keer.
}