Skip to main content

XIAO ePaper Display EN04 入门指南

XIAO ePaper Display Board EN04

介绍

XIAO nRF52840 Plus 提供算力,显示板 EN04 同时支持 24‑pin50‑pin ePaper 显示屏。它配备带电源开关的 JST 2.0 mm 电池连接器、内置充电 IC、NFC 功能,并带有 1 个复位按键和 3 个用户按键。非常适合用于低功耗 ePaper 项目,例如数字标牌、电子标签和便携式信息看板。

特性

  • 由 XIAO nRF52840 Plus 供电: 连接到兼容的 ePaper 显示屏后即可立即工作。
  • 多功能显示支持: 兼容多种 ePaper 屏幕,支持 24-Pin 和 50-Pin 接口,并可通过跳线帽轻松切换。
  • 带开关的电池连接器: 提供简单的电池连接,并集成电源开关,实现高效电源管理与节能。
  • 用户友好按键: 包含 1 个复位按键和 3 个用户可编程按键,为项目加速和自定义功能提供灵活性。

规格

参数描述
处理器XIAO nRF52840 Plus
ePaper 连接器FPC 24 Pin 0.5mm
FPC 50 Pin 0.5mm
电池连接器JST 2.0mm
开关电池电源 ON/OFF
电源- 3.7V 锂电池
- USB Type-C
按键- 1x 复位按键
- 3x 用户按键

ePaper 板选择指南

产品ePaper Display Board EN04ePaper BreakoutePaper Driver Board
处理器XIAO nRF52840 PlusXIAO 系列XIAO 系列
兼容的 ePaper 显示屏24 Pin ePaper
50 Pin ePaper
24 Pin ePaper24 Pin ePaper
ePaper 连接器FPC 24 Pin, 0.5mm
FPC 50 Pin, 0.5mm
FPC 24 Pin 0.5mmFPC 24 Pin 0.5mm
电池连接器JST 2.0mm/JST 2.0mm
开关电池电源 ON/OFF/电池电源 ON/OFF
按键1x 复位按键
3x 用户按键
//
扩展 IO 端口/用于连接其他控制器用于连接额外传感器

应用

  • 智能家居仪表盘:显示天气更新、日历事件以及来自各类智能家居设备的通知等实时信息。
  • 能耗监测:展示来自智能电表的能耗数据,帮助家庭用户更高效地跟踪和管理能源使用。
  • 安防警报:显示安防事件的警报和通知,例如运动检测或门/窗传感器被触发。
  • 智能恒温器显示屏:显示温度和湿度水平,以及智能恒温器的控制设置。
  • 数字相框:创建一款支持 WiFi 的数字相框,用于显示来自智能家居网络的图片。

硬件概览

支持的 ePaper

24-Pin 连接器

tip

在使用 XIAO ePaper Display Board 时,请务必根据 ePaper 显示屏的类型正确设置跳线:

  • 对于 24 Pin ePaper 显示屏 → 将跳线设置为 24 Pin

⚠️ 使用错误的跳线设置可能会导致 ePaper 无法显示或显示异常内容。通电前请务必再次确认跳线位置。

50-Pin 连接器

tip

在使用 XIAO ePaper Display Board 时,请务必根据 ePaper 显示屏的类型正确设置跳线:

  • 对于 50 Pin ePaper 显示屏 → 将跳线设置为 50 Pin

⚠️ 使用错误的跳线设置可能会导致 ePaper 无法显示或显示异常内容。通电前请务必再次确认跳线位置。

软件概览

安装 Seeed GFX 库

tip

此库与 TFT 库具有相同功能,但与其不兼容。如果你已经安装了 TFT 库或其他类似的显示库,请先将其卸载。

从 GitHub 下载并安装 Seeed GFX 库。

向下滚动并打开此链接。

选择你的设备类型,页面会生成一些代码。复制这些代码,我们稍后会用到。

tip

如果选择错误,屏幕将不会显示任何内容。

因此请务必确认你的设备或组件类型。

下载库文件后,依次点击 Sketch -> Include Library -> Add .ZIP Library,然后选择刚刚下载的库。

这里有 4 个基础示例,打开一个你喜欢的基础示例:

  1. Bitmap:显示位图图像。
  2. Clock:显示一个时钟。
  3. Clock_digital:显示一个数字时钟。
  4. Shape:显示不同大小的文字和图形。

入门

这里我们以 7.5 英寸显示屏为例。对于所有 24-pin 屏幕,步骤都是相同的,唯一的区别是在驱动程序中选择合适的屏幕尺寸。

创建一个 新的 "driver.h" 文件,并将这些代码粘贴进去。代码应类似如下:

#define BOARD_SCREEN_COMBO 502 // 7.5 inch monochrome ePaper Screen (UC8179)
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EN04

之后,前往 Tools -> Board -> XIAO ESP32S3Tools -> Port -> 选择你的开发板所连接的端口。然后点击 Upload 来上传代码。

现在你将在电子纸屏幕上看到反馈!下面是 Helloworld 示例的运行结果。(如果没有任何显示,请按一下复位按钮)

tip

⚠️ 注意:电子纸排线方向 将电子纸显示屏连接到 XIAO 电子纸显示板时,请确保 FPC 排线插入方向正确。

⚠️ 请勿反向插入连接器!将排线倒置插入可能导致电子纸无法显示,甚至损坏屏幕/主板。 下图展示了正确的连接方式:

XIAO 电子纸显示板(nRF52840)- EN04 上的用户按键

EN04 提供了 3 个可由用户编程的按键,可用于各种控制用途。本节演示如何使用 Arduino 读取按键状态并响应按键按下。

在 EN04 上,这 3 个按键连接到 XIAO nRF52840 Plus:

KEY1KEY2KEY3
GPIO2_D1/A1GPIO3_D2/A2GPIO5_D4/A4

所有按键为低电平有效,这意味着按下时读取为 LOW,松开时读取为 HIGH。

基础按键读取示例

此示例演示如何检测按键按下并在串口监视器中打印消息。


// Define button pin (GPIO2 corresponds to Arduino digital pin 2)
const int KEY_PIN = 2;

void setup() {
// Initialize serial port (baud rate 9600, nRF52840 compatible with default Serial)
Serial.begin(9600);
// Wait for serial port initialization to complete (for nRF52840 Bluetooth module serial buffer)
while (!Serial) delay(10);

// Configure button pin as input mode with internal pull-up resistor enabled
// Pin is HIGH when not pressed, LOW when pressed
pinMode(KEY_PIN, INPUT_PULLUP);

Serial.println("nRF52840 Button Detection Program Started");
Serial.println("Press the button connected to GPIO2 to see output...");
}

void loop() {
// Read button state (INPUT_PULLUP mode: LOW = pressed, HIGH = not pressed)
int keyState = digitalRead(KEY_PIN);

// Detect if button is pressed (low level)
if (keyState == LOW) {
// 50ms delay for debounce handling (avoids false triggers from mechanical button bounce)
delay(50);
// Read state again to confirm (ensure stable press)
if (digitalRead(KEY_PIN) == LOW) {
// Print specified content via serial port
Serial.println("Hello. This is key1");

// Wait for button release (prevent repeated printing during long press)
while (digitalRead(KEY_PIN) == LOW) {
delay(10); // Short delay to reduce CPU usage
}
}
}

// Short delay in main loop for performance optimization
delay(10);
}

XIAO 电子纸显示板(nRF52840)- EN04 的电池使用

当使用电池供电时:

  • 设备将在两次刷新之间自动进入低功耗模式

  • 电池寿命取决于刷新频率(在默认设置下,满电通常可使用 3 个月)

  • 当电池电量低于 20% 时,设备会在右上角显示低电量图标

tip

如果你想自己编写代码来读取电池电压,在 analogRead() 函数前添加 10ms 延时会更精确。

#define VOLTAGE_PIN A0 //GPIO1
#define ADC_ENABLE_PIN A5 //GPIO6

void setup() {
Serial.begin(115200);
delay(10);

pinMode(VOLTAGE_PIN, INPUT);
pinMode(ADC_ENABLE_PIN, OUTPUT);
digitalWrite(ADC_ENABLE_PIN , HIGH);
}


void loop() {
analogReadResolution(12);
int adcValue = analogRead(VOLTAGE_PIN);
float voltage = (adcValue / 4096.0) *7.16;
Serial.print("ADC Value: ");
Serial.print(adcValue);
Serial.print(" Voltage: ");
Serial.print(voltage, 3);
Serial.println(" V");
delay(10);
}

资源

技术支持与产品讨论

感谢你选择我们的产品!我们将为你提供多种支持,确保你在使用我们产品的过程中尽可能顺利。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...