Hola,
hace poco que estoy trasteando con una pantalla de E-INK (o E-PAPER), concretamente ésta:
https://www.waveshare.com/2.13inch-e-paper.htm
Aquí su wiki:
https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT
He conseguido hacer funcionar perfectamente los ejemplos de las librerías de Waveshare (oficial), de GxEPD y GxEPD_AVR.
El problema está en que al intentar hacer mis pruebas sólo quiero conseguir enviar texto a la pantalla, lo he medio conseguido pero sólo puedo escribir en una pequeña parte del display, no visualizándose el resto del texto que va más allá. Intuyo, por lo que he leído por ahí, que tal vez tenga algo que ver con la instrucción "display.setRotation(2);", pero ni idea. Por favor, a ver si alguien me puede orientar por que tampoco controlo mucho de programación, como puedo escribir en toda la pantalla (o simplemente donde yo quiera)?
Aquí mi código para Arduino Mega:
// mapping suggestion from Waveshare SPI e-Paper to Wemos D1 mini
// BUSY -> D2, RST -> D4, DC -> D3, CS -> D8, CLK -> D5, DIN -> D7, GND -> GND, 3.3V -> 3.3V
#include <GxEPD.h>
#include <GxGDE0213B1/GxGDE0213B1.cpp> // 2.13" b/w
//Fonts
#include <Fonts/FreeMonoBold9pt7b.h>
#include <Fonts/FreeMonoBold12pt7b.h>
#include <Fonts/FreeMonoBold18pt7b.h>
#include <Fonts/FreeMonoBold24pt7b.h>
#include <GxIO/GxIO_SPI/GxIO_SPI.cpp>
#include <GxIO/GxIO.cpp>
GxIO_Class io(SPI, SS, 9, 8); // arbitrary selection of D3(=0), D4(=2), selected for default of GxEPD_Class //SPI, CS, DC, RST
GxEPD_Class;
GxEPD_Class display(io); // default selection of D4(=2), D2(=4) //RST=8, BUSY=7
void setup() {
// put your setup code here, to run once:
// setup the display
display.init();
//Display colours
display.fillScreen(GxEPD_BLACK);
display.setTextColor(GxEPD_WHITE);
// load a font - in the library
display.setFont(&FreeMonoBold9pt7b);
// let the strings begin
display.setCursor(0, 0);
display.setRotation(2);
display.println();
display.println("Testing");
display.println("Testing");
display.println("Testing");
display.update();
//delay (3000);
}
void loop() {
// put your main code here, to run repeatedly:
}
Sólo puedo escribir dentro del rectángulo negro que se ve en la foto adjunta.
Aquí las librerías:
Waveshare
GxEPD
GxEPD_AVR
Librería adicional necesaria para las GxEPD:
Adafruit-GFX-Library
Para el código me he basado en el que aparece en estos links:
https://github.com/ZinggJM/GxEPD/issues/24
https://steve.fi/Hardware/d1-epaper/
Quedo a la espera de ayuda.
Saludos.