E‑Paper-Display


Als Elek­tro­n­is­ches Papi­er (E‑Pa­per/-E-Ink) wird die Tech­nik beze­ich­net das Ausse­hen von Tinte auf Papi­er nachzu­bilden. Die Anzeige leuchtet nicht selb­st, der Inhalt wird solange dargestellt bis eine Änderung erfol­gt. Die Anzeige ist träge, ein Wech­sel des Inhalts dauert einige Zeit, schnelle Bild­wech­sel sind nicht möglich.

Als Hard­ware sollen ein 1,54 Zoll Dis­play mit ein­er Auflö­sung von 200x200 Pix­eln und ein 4,2 Zoll Dis­play mit 400x300 Pix­eln ver­wen­det wer­den.
Das Wave­share 1,54 Zoll Dis­play kann die Far­ben weiß, rot und schwarz darstellen, das Wave­share 4,2 Zoll Dis­play ver­fügt nur über die Far­ben schwarz und weiß.

Als Mikro­con­troller sollen ver­schiedene ESP-Con­troller einge­set­zt wer­den.

Konfiguration der Mikrocontroller

Anschluss des Displays

Die Pins CLK, DIN (COPI) und CS sind durch den SPI-Bus des jew­eili­gen Mikro­con­trollers fest­gelegt, die anderen Pins kön­nen frei vergeben wer­den.

PinESP32 WROOMNodeM­CUESP32-C6Arduino Nano ESP32
BUSY4D111D9
RST22D22D7
DC23D63D6
CS5 (SPI)D8 (SPI)18 (SPI)D10 (SPI)
CLK18 (SPI)D5 (SPI)21 (SPI)D13 (SPI)
DIN23 (SPI)D7 (SPI)19 (SPI)D11 (SPI)
GNDGNDGNDGNDGND
VCC3,3V3,3V3,3V3,3V

Grafikfunktionen

Funktionen der Bibliothek GxEPD2

Schlüs­sel­wortPara­me­terAktion
width();Bild­schirm­bre­ite fest­stellen
height();Bild­schirmhöhe fest­stellen
init();Dis­play starten
setRotation(Richtung);Rich­tung = 0 → nicht drehen
Rich­tung = 1 → 90° drehen
Rich­tung = 2 → 180° drehen
Rich­tung = 3 → 270 ° drehen
Bild­schirm aus­richt­en
fillScreen(Farbe);Stan­dard­far­ben:
GxEPD_WHITE
GxEPD_BLACK
GxEPD_RED
Bild­schirmhin­ter­grund
set­Full­Win­dow();gesamten Bild­schirm nutzen
setPartialWindow(StartX, Star­tY, EndeX, EndeY);Teil des Bild­schirm nutzen
drawPixel(x, y, Farbe);einzel­nen Pix­el zeich­nen
drawLine(StartX, Star­tY, EndeX, EndeY, Farbe);Lin­ie zeich­nen
drawFastHLine(StartX, Star­tY, Länge, Farbe);hor­i­zon­tale Lin­ie zeich­nen
drawFastVLine(StartX, Star­tY, Länge, Farbe);ver­tikale Lin­ie zeich­nen
drawRect(StartX, Star­tY„ Bre­ite, Höhe, Farbe);Rechteck zeich­nen
drawRoundRect(StartX, Star­tY, Bre­ite, Höhe, Eck­en­ra­dius, Farbe);abgerun­detes Rechteck zeich­nen
fillRect(StartX, Star­tY, Bre­ite, Höhe, Füll­farbe);aus­ge­fülltes Rechteck zeich­nen
drawCircle(MittelpunkX, Mit­telpunk­tY, Radius, Farbe);Kreis zeich­nen
fillCircle(MittelpunktX, Mit­telpunk­tY, Radius, Füll­farbe);Aus­ge­füll­ten Kreis zeich­nen
setCursor(x, y);Cur­sor set­zen
setTextSize(Textgröße);Textgröße bes­tim­men
setTextColor(Farbe);Text­farbe set­zen
print(“Text”); println(“Text”);Text schreiben
setTextWrap(true/false);false → Text fließt über den Rand des Dis­plays hin­aus
true → Text wird am Ende umge­brochen
Zeilenum­bruch
drawBitmap(x, y, Bitmap_Array, Bre­ite, Höhe, Farbe);Bitmap dart­sellen

Benötigte Bibliotheken

Ansicht auf einem 1,54 Zoll Dis­play

Text mit u8g2Kreisehor­i­zon­tale Lin­ienabgerun­dete Rechtecke

Das Programm

Waveshare 1,54 Zoll

Waveshare 4,2 Zoll


Let­zte Aktu­al­isierung: Nov. 17, 2025 @ 10:10