← Todas las entradas Entrada de blog

Pantalla E-Paper con ESP8266 — WeAct 4,2" Conexiones y Configuración

Viktoria Builds

Conecta una pantalla e-paper WeAct de 4,2 pulgadas al ESP8266 por SPI y obtén una imagen que permanece aunque desconectes la alimentación.

Ver en YouTube

El e-paper es una tecnología de pantalla que se siente diferente a trabajar. Mantiene la imagen con cero consumo de energía: sin refresco, sin retroiluminación, nada. Una vez dibujada la imagen se puede desconectar todo y se queda ahí. Eso lo hace útil para cualquier cosa que no necesite actualizarse constantemente: etiquetas de nombre, paneles de control, lecturas de sensores que consultas de vez en cuando.

Este es el módulo WeAct de 4,2 pulgadas. Ocho pines, funciona a 3,3 V y se comunica por SPI, aunque las etiquetas dicen SDA y SCL, que parece I2C. No lo es. Eso me confundió un momento antes de comprobar el datasheet.

Componentes

  • ESP8266 (NodeMCU o similar)
  • Módulo e-paper WeAct 4,2"
  • Cables dupont

Conexiones

La pantalla tiene ocho pines. Se conectan al ESP8266 de la siguiente manera:

  • VCC → 3,3 V
  • GND → GND
  • SDA → D7 (MOSI)
  • SCL → D5 (CLK)
  • CS → D8
  • D/C → D3
  • RES → D4
  • BUSY → D2

A pesar de las etiquetas SDA/SCL esto es SPI, no I2C. El chip select, data/command, reset y el pin busy son todos necesarios — no dejes ninguno al aire.

Librerías

Dos librerías desde el Arduino Library Manager: GxEPD2 y Adafruit GFX. Instalar ambas. GxEPD2 gestiona el driver de pantalla y el bucle de renderizado por páginas. Adafruit GFX proporciona fuentes y primitivas de dibujo.

Sketch

La librería GxEPD2 usa un enfoque de buffer por páginas — se dibuja dentro de un bucle do { ... } while (display.nextPage()). Aquí un sketch mínimo que imprime texto en la pantalla:

#include <GxEPD2_BW.h>
#include <Fonts/FreeMonoBold9pt7b.h>

GxEPD2_BW<GxEPD2_420_GDEY042T81, GxEPD2_420_GDEY042T81::HEIGHT> display(
  GxEPD2_420_GDEY042T81(/*CS=*/ D8, /*DC=*/ D3, /*RES=*/ D4, /*BUSY=*/ D2));

void setup() {
  display.init();
  display.setRotation(1);
  display.setFont(&FreeMonoBold9pt7b);
  display.setTextColor(GxEPD_BLACK);
  display.setFullWindow();
  display.firstPage();
  do {
    display.fillScreen(GxEPD_WHITE);
    display.setCursor(10, 30);
    display.print("Hello, World");
  } while (display.nextPage());
}

void loop() {}

Subida y resultado

Subir el sketch, esperar unos segundos mientras se inicializa la pantalla, y la imagen aparece. Hay parpadeo durante el refresco — es normal. El e-paper resetea todos los píxeles antes de dibujar un nuevo fotograma, lo que provoca ese parpadeo en blanco y negro. Una vez terminado, la imagen queda fijada. Desconectar la alimentación y se mantiene.

El código completo está en mi GitHub y enlazado desde mi web. Si conectas el tuyo o construyes algo con él, compártelo en el Discord — me gustaría ver qué hace la gente con la imagen persistente.

¿Te ha gustado este tutorial?

Apoya el canal en Patreon y obtén acceso anticipado a proyectos, build logs y mucho más.

Apoyar en Patreon →