Skip to content

esp8266驱动4.2寸三色墨水屏

演示

实践

创建项目

引脚

esp8266 的引脚和实际的GPIO不一致,因此要参考原理图

  • GND ---> G
  • 3.3V ---> 3v
  • RES ---> D4 ---> GPIO2
  • BUSY ---> D1 ---> GPIO5
  • DC ---> D2 ---> GPIO4
  • SPI
    • SCL ---> D5 ---> GPIO14
    • SDI ---> D7 ---> GPIO13 (MOSI)
    • CS ---> D8 ---> GPIO15

驱动板

由于是纯数字电路,只要是24pin的转接板都可以,A模式就可以点亮。

代码

基于 ArduinoGxEPD2 库的示例修改

cpp
#define ENABLE_GxEPD2_GFX 1

#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif

#include <pins_arduino.h>
#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
#include <GxEPD2_7C.h>
#include <Fonts/FreeMonoBold9pt7b.h>


#if defined(ESP32)
//**** 注意1、2.9寸黑白屏初始化,注意修改相应的引脚,我这里是ESP32的,你改成自己的就可以了
// ESP32主控接法: 
//    SS(CS)=5 MOSI(SDA)=23  MISO(不接)=19 SCK=18 DC=17 RST=16 BUSY=19
// 2.9寸屏
// GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(GxEPD2_290_T94_V2(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 19));
// 2.13寸屏
// GxEPD2_BW<GxEPD2_213_B72, GxEPD2_213_B72::HEIGHT> display(GxEPD2_213_B72(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 19));
// 1.54寸屏
// GxEPD2_BW<GxEPD2_154_T8, GxEPD2_154_T8::HEIGHT> display(GxEPD2_154_T8(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 19));



// ESP32C3主控接法: 
//    SS(CS)=7 MOSI(SDA)=6  MISO(不接)=5 SCK=4 DC=3 RST=2 BUSY=10
// 2.9寸屏
// GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(GxEPD2_290_T94_V2(/*CS=5*/ 7, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 10));
// 2.13寸屏
 GxEPD2_BW<GxEPD2_213_B72, GxEPD2_213_B72::HEIGHT> display(GxEPD2_213_B72(/*CS=5*/ 7, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 10));
// 1.54寸屏
// GxEPD2_BW<GxEPD2_154_T8, GxEPD2_154_T8::HEIGHT> display(GxEPD2_154_T8(/*CS=5*/ 7, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 10));



// ESP32S3主控接法: 
//    SS(CS)=10 MOSI(SDA)=11  MISO(不接)=13 SCK=12 DC=8 RST=7 BUSY=9
// 2.9寸屏
// GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(GxEPD2_290_T94_V2(/*CS=5*/ 10, /*DC=*/ 8, /*RST=*/ 7, /*BUSY=*/ 9));
// 2.13寸屏
// GxEPD2_BW<GxEPD2_213_B72, GxEPD2_213_B72::HEIGHT> display(GxEPD2_213_B72(/*CS=5*/ 10, /*DC=*/ 8, /*RST=*/ 7, /*BUSY=*/ 9));
// 1.54寸屏
// GxEPD2_BW<GxEPD2_154_T8, GxEPD2_154_T8::HEIGHT> display(GxEPD2_154_T8(/*CS=5*/ 10, /*DC=*/ 8, /*RST=*/ 7, /*BUSY=*/ 9));


#else

// ESP8266 模块接法:
//    SS(CS)=15 MOSI(SDA)=13  MISO=12 SCK(SCLK)=14 DC=4 RST=2 BUSY=5
// ESP8266开发板对应引脚: 
//    CS=D8 SDA=D7 SCK=D5 DC=D2 RST=D4 BUSY=D1
// 4.2寸屏
 GxEPD2_3C<GxEPD2_420c_GDEY042Z98, GxEPD2_420c_GDEY042Z98::HEIGHT> display(GxEPD2_420c_GDEY042Z98(/*CS=5*/ 15, /*DC=*/ 4, /*RST=*/ 2, /*BUSY=*/ 5));
#endif

#if defined(ESP32)
#include "bitmaps/Bitmaps1304x984.h" // 12.48" b/w
#else
// 3-color
#include "bitmaps/Bitmaps3c400x300.h" // 4.2"  3-color b/w/r
#endif

参考资料

最近更新