2.9inch(384X168) E-paper Display RBWY
一、描述
本产品为2.9英寸4色墨水屏,支持黑白黄红4色显示。其分辨率为384x168,采用SPI通信模式,支持全刷新模式。适用于电子书阅读器、电子价签、工业和物流标签、数字标牌、广告牌、会议铭牌、电子备忘录等。我们为 Raspberry Pi 提供 C 和 Python 示例程序。预留的 SPI 控制接口允许与 Arduino、STM32 和 ESP32 等主控制板轻松集成。我们还提供Arduino、STM32和ESP32的示例代码,支持显示图像、英文和数字字符,以及绘制点、线、矩形和圆形。
二、特点
·分辨率:384x168
·SPI接口,需要更少的引脚
·板载电平转换芯片,兼容3.3V和5V微控制器接口
·基于Raspberry Pi 40针GPIO接口设计,兼容Raspberry Pi系列板卡。
·预留SPI通信接口,便于与Arduino、STM32和ESP32等主控板轻松集成。
·提供开源示例程序,适用于Raspberry Pi、Arduino、STM32和ESP32开发板
三、参数
|
大小 |
2.9英寸 |
|
像素 |
384 x 168 |
|
显示颜色 |
4种颜色:黑色、白色、黄色、红色 |
|
电平转换芯片 |
TXS0108EPWR |
|
信号接口 |
SPI |
|
电源电压 |
3.3V/5V |
|
像素间距 |
0.176mm x 0.176mm |
|
完全刷新 |
20秒 |
|
显示方向 |
水平和 垂直型 |
|
运作温度 |
0°C-40°C |
|
FPC接口 |
0.5mm 间距 24 引脚 |
|
刷新功耗 |
9.9mW |
|
待机电源消耗 |
0.003mW |
|
外部尺寸 |
83mm x 36.9mm |
|
显示 区域 |
67.58mm x29.57mm |
刷新过程说明(刷新时间:从屏幕动作开始到屏幕稳定的整个过程):
全局刷新:刷新过程中,屏幕会闪烁多次。

图3-1尺寸图
四、资源概述
图 4-1 驱动程序板资源概述
①2.9英寸黑白黄红4色墨水屏
②电子纸屏连接器
③SPI控制接口连接器
④移级芯片TXS0108EPWR
⑤SPI线数选择开关(默认为“0”位置)
六、使用
本产品提供的所有演示代码均基于4线SPI模式,因此电路板背面的BS选择开关默认设置为“0”。
6.1接口配置
|
电子纸接口 |
SPI |
|
VCC |
3.3V/5V |
|
GND |
电源接地 |
|
RST |
外部复位引脚(低电平复位) |
|
Busy |
忙状态输出引脚 |
|
D/C |
数据/命令控制引脚(数据为高电平,命令为低电平) |
|
MOSI |
SPI通信MOSI引脚 |
|
CS |
SPI 芯片选择引脚(低电平有效) |
|
CLK |
SPI通信SCK引脚 |
6.2 Raspberry Pi 平台
为了兼容靶心和书虫系统,本示例代码分为 wiringpi 库版和 lgpio 库版,其中靶心系统使用 wiringpi 库版本,bookworm系统使用 lgpio 库版本。
6.2.1 接口配置

图 6-1 Raspberry Pi 接口图
树莓派和墨水屏之间的接线图如下图所示:

Raspberry Pi 板的示例程序使用 BCM 编号来定义引脚定义与 lgpio 库,并将 wiringpi 编号与 wiringpi 库一起使用。树莓派板的引脚接线定义如下表所示:
|
电子纸接口(电子纸连接器) |
引脚功能 |
BCM 编号 |
Wiringpi 编号 |
|
VCC |
3.3V |
|
|
|
GND |
电源接地 |
|
|
|
BUSY |
忙碌信号引脚 |
24 |
5 |
|
RSTN |
重置 |
17 |
0 |
|
D/C |
命令/数据选择 |
25 |
6 |
|
SDA |
SPI 数据输出/从输入 |
10 |
12 |
|
SCL |
SPI 时钟 |
11 |
14 |
|
CSB |
SPI 芯片选择 |
8 |
10 |
|
|
LED1 |
4 |
7 |
|
|
LED2 |
18 |
1 |
|
|
K1 |
27 |
2 |
|
|
K2 |
22 |
3 |
表 6-1 驱动板和 Raspberry Pi 引脚定义
6.2.2 库安装
- Wiringpi库安装
|
sudo apt-get install wiringpi wget https://project-downloads.drogon.net/wiringpi-latest.deb |
升级 Raspberry Pi 4B 版本:
|
sudo dpkg -i wiringpi-latest.deb gpio -v |
如果出现2.52版本,则表示安装成功。
·对于 Bullseye 分支系统,使用以下命令:
|
git clone https://github.com/WiringPi/WiringPi cd WiringPi . /build gpio -v |
运行“gpio -v”将显示 2.70 版本。如果没有出现,则表示存在安装错误。
如果在 Python 版本中运行示例程序时出现错误消息“ImportError: No module named 'wiringpi'”,请运行以下命令:
·对于 Python 2.x 版本
|
pip install wiringpi |
·对于 Python 3.x 版本
|
pip3 install wiringpi |
注意:如果安装失败,可以尝试以下编译安装。.
|
git clone --recursive https://github.com/WiringPi/WiringPi-Python.git |
注意:--recursive 选项可以自动拉取子模块。否则,您需要手动下载它们。
进入新下载的 WiringPi-Python 文件夹,使用以下命令进行编译和安装:
·对于 Python 2.x 版本
|
sudo python setup.py install |
·对于 Python 3.x 版本
|
sudo python3 setup.py install |
如果出现以下错误:

在这种情况下,输入命令 sudo apt install swig 来安装 SWIG。安装完成后,运行sudo python3 setup.py install 进行编译安装。如果您看到类似的信息,则表示安装成功。

- lgpio 库安装
对于Bookworm系统, 示例程序使用 lgpio 库。该库的安装命令为:
|
wget https://github.com/joan2937/lg/archive/master.zip unzip master.zip cd lg-master Make sudo make install |
- Python 库安装
示例程序使用 Python3 环境。要运行 Python 示例程序,您需要安装 PIL、numpy 和 spidev 库。输入以下命令来安装它们:
|
sudo apt-get install python3-pil sudo apt-get install python3-numpy sudo apt-get install python3-pip sudo pip3 install spidev |
6.2.3启用通信接口
|
sudo raspi-config |
启用 SPI 接口:
|
Interfacing Options->SPI->Yes |
检查启用的SPI设备:
|
ls /dev/spi* |
这将打印:“/dev/spidev0.0”和“/dev/spidev0.1”
6.2.4 Example Code示例代码
1. Python 版本示例
以 lgpio 库为例,导航到 /demo codes/raspberry_pi/lgpio/python 目录。
|
sudo python3 gui_demo.py |
输入上述命令后,您可以观察电子纸显示。
2. C 版本示例
以 lgpio 库为例,导航到 /demo codes/raspberry_pi/lgpio/c 目录:
|
sudo make clean sudo make sudo ./main |
输入上述命令后,您可以观察电子纸显示。
6.3 Arduino 平台
6.3.1 接口配置
表 6-2 显示了 Arduino Mega 和电子纸显示器之间的接线定义:
|
E-paper 接口 |
Arduino Mega |
|
VCC |
5V |
|
GND |
GND |
|
CS |
D53 |
|
CLK |
D52 |
|
MOSI |
D51 |
|
DC |
D8 |
|
RST |
D9 |
|
BUSY |
D10 |
表 6-2 电子纸显示器和 Arduino Mega Pin 定义
下图显示了 Arduino Mega 和墨水屏之间的接线图:

表 6-3电子纸显示器和 Arduino UNO 引脚定义:
|
E-paper接口 |
Arduino UNO |
|
VCC |
5V |
|
GND |
GND |
|
CS |
D7 |
|
CLK |
D13 |
|
MOSI |
D11 |
|
DC |
D10 |
|
RST |
D9 |
|
BUSY |
D8 |
表 6-3 电子显示器 and Arduino UNO引脚定义
下图显示了 Arduino UNO 和墨水屏之间的接线图:

6.3.2 Arduino IDE 安装
1.从Arduino官网下载Arduino IDE安装包(软件 |Arduino)。

选择“仅安装”

2.下载完成后点击“安装”。



在安装过程中,系统会提示您安装驱动程序。只需单击“安装”即可继续。



3.连接Arduino开发板。

6.3.3 运行项目
在 Arduino IDE 中打开项目文件 /demo codes/Arduino_MEGA/Arduino_MEGA.ino 或 /demo codes/Arduino_UNO/Arduino_UNO.ino。根据您的设置选择正确的板和端口。单击“验证”,验证成功后,将其上传到模块。观察电子纸显示屏。
注意:由于Arduino内存资源较小,在使用Arduino相关例程时,无法同时刷新和显示多张图片。请尽可能少刷新图像,否则您将收到内存已用完的消息。

6.4 ESP32 平台
示例程序使用 ESP32 模块 ESP32-WROOM-32E。(IDE中的板型号:NodeMCU-32S)
6.4.1 接口配置
|
E-paper 接口 |
ESP32 接口 |
|
VCC |
3.3V |
|
GND |
GND |
|
CS |
IO27 |
|
CLK |
IO18 |
|
MOSI |
IO23 |
|
DC |
IO14 |
|
RST |
IO33 |
|
BUSY |
IO13 |
表 6-4 电子纸显示和 ESP32 引脚定义
下图显示了 ESP32 和墨水屏之间的接线图:

6.4.2 环境配置
1. 安装 Arduino IDE。
2. 配置 ESP 板管理器的地址。

将以下 URL 粘贴到“其他图板管理器 URL”中。
|
https://dl.espressif.com/dl/package_esp32_index.json |

3. 在开发板管理器中下载板子,等待安装完成。

4. 下载驱动程序。
点击以下网站链接进行下载。
|
CP210x USB to UART Bridge VCP Drivers - Silicon Labs |

双击安装。
5.选择电路板和端口。




6.4.3 运行项目
使用 Arduino IDE 打开项目文件 /demo codes/Arduino_ESP32。根据您的设置选择正确的板和端口。点击验证,验证成功后上传到模块,观察电子纸显示。
6.5 STM32 平台
示例代码基于STM32F103RBT6,开发板型号为NUCLEO-F103RB。
6.5.1接口配置
|
E-paper 接口 |
STM32 接口 |
|
VCC |
3.3V |
|
GND |
GND |
|
CS |
PB12 |
|
CLK |
PB13 |
|
MOSI |
PB15 |
|
DC |
PA8 |
|
RST |
PA11 |
|
BUSY |
PA12 |
表 6-5 电子纸显示和 STM32 引脚定义
下图显示了STM32与墨水屏之间的接线图:

6.5.2 运行程序
使用 Arduino IDE 打开项目文件 /demo codes/Arduino_ESP32。根据您的设置选择正确的板和端口。点击验证,验证成功后上传到模块,观察电子纸显示。
6.6图像数字化
6.6.1图像创建
屏幕支持4种彩色显示。它们是黑色、白色、红色和黄色。以上4种颜色为标准色。其实可以参考绘图软件的色表。制作图片时,需要将384x168分辨率的图片制作成仅包含黑、白、红、黄4种颜色的位图。并将图片保存为 BMP 或 JPG 格式。
6.6.2 模式提取

图 6-2
您可以使用 Image2Lcd 软件进行模式提取。该软件以压缩包形式提供。要达到图 6-2 所示的效果,请按照图 6-3 所示的模式提取参数设置进行作:
1、打开需要提取的图片;
2. 输出数据类型:选择“C语言数组(*.c)”。
3、扫描方式:选择“垂直扫描”;
4、输出灰度:选择“4灰度”;
5、最大宽度和高度:选择“384”和“168”,点击后面的箭头确认;
6、如下图所示,只勾选第三项;

7、“反色”无需勾选;
8、点击“保存”,将转换后的数组保存到扩展名为“.c”的文件中,384x168分辨率的图像将生成一个16128字节的图像数组;
9. 最后,将示例程序代码中对应的数组替换为“.c”文件中的数组。

图 6-3
图片印象说明:
在Image2Lcd软件中,当灰度输出设置为“4灰度”时,对应关系如下:
|
图片原始颜色 |
转换后的颜色 |
|
红 |
深灰 |
|
黄 |
浅灰 |
|
黑 |
黑 |
|
白 |
白 |
如上文第 8 点所述,分辨率为 384x168 的图片将生成一个大小为 16128 字节的图像数组,即 16128x8=129024 位,实际墨水屏具有 384x168=64512 像素。可以知道,一个像素由 2 位表示 (129024/64512=2)。在Image2Lcd软件中,转换后的颜色与2位二进制码的对应关系如下表所示:
|
图片原始颜色 |
转换后的颜色 |
Image2Lcd 软件中转换后颜色的二进制表示 |
|
红 |
深灰 |
10 |
|
黄 |
浅灰 |
01 |
|
黑 |
黑 |
11 |
|
白 |
白 |
00 |

在墨水屏中,黑、白、红、黄四种颜色的表示与Image2Lcd软件中的表示不同。
墨水屏中的颜色表示及其与 2 位二进制文件的对应关系如下表所示:
|
墨水屏幕上显示的颜色 |
2 个应写入墨水屏幕的二进制数 |
|
白 |
01 |
|
黄 |
10 |
|
红 |
11 |
|
黑 |
00 |
从上表可以看出,Image2Lcd 软件中转换后的图像得到的 16128 字节数组不能直接写入墨水屏。它需要转换。下图是Image2Lcd生成的数组与写入墨迹屏的数据的转换关系:

经过上述转换后,在Image2Lcd软件中转换的原始图像的二进制数被替换为墨水中原始图像颜色对应的二进制数。
当传入一个字节时,以0xF5为例:
0xF5 -> 11 11 01 01
每两位数字用 0x03 (0000 0011) 执行“&”运算。根据作结果确定颜色,下表是作结果与颜色的对应关系:
|
图片原始颜色 |
在 Image2Lcd 软件中转换的二进制数 |
“&”作结果 |
结果替换 |
替换结果的颜色是墨水中对应的 |
|
黑 |
11 |
11 |
00 |
黑 |
|
黑 |
11 |
11 |
00 |
黑 |
|
黄 |
01 |
01 |
10 |
黄 |
|
黄 |
01 |
01 |
10 |
黄 |
11 & 11 -> 11,即十六进制0x3,此时11被替换为00,00在墨水中表示为黑色;
11 & 11 -> 11,即十六进制0x3,此时11被替换为00,00在墨水中表示为黑色;
01 & 11 -> 01,即十六进制0x1,此时01被10代替,10在墨屏中表示为黄色;
01 & 11 -> 01,即十六进制0x1,此时01被10代替,10在墨屏中表示为黄色;
可以看到,0xF5在黑黄相遇的区域,0xF5被换成0x0A,写入电子墨水屏。
注意,图片中的颜色必须是标准的黑、白、红、黄4种颜色。如果颜色有色差,则可能会被识别为不同的颜色。如下图中浅黄色被识别为白色:

6.6.3 数码化数据的用途
以 Arduino 示例代码为例:Ap_29demo.h 文件存储图像数字化数据(十六进制数组)。您可以按照指定格式将转换后的数据添加到 Ap_29demo.h 文件中。

将以下代码中的变量“gImage_1”替换为您自己的数据

附录
预防措施
- 在通电状态下,不要插拔模块。
- 遵循产品上提供的所有警告和指南。
- 保持产品干燥。如不小心溅水或浸入液体,立即断开电源并彻底干燥产品。
- 确保操作环境有良好的通风和散热,以避免因高温导致组件损坏。
- 不要在多尘或肮脏的环境中使用或存放产品。
- 避免在温度频繁变化的环境中使用产品,以防止组件发生冷凝损坏。
- 轻拿轻放产品,避免跌落、撞击或剧烈震动,以免损坏电路和组件。
- 不要使用有机溶剂或腐蚀性液体清洁产品。
- 请勿自行尝试维修或拆解产品。如出现任何故障,请联系我们公司进行维修。未经授权的维修可能会损坏产品,造成的损坏将不在保修范围内。
保养
地址:广西壮族自治区桂林市七星区漓江花园19栋
联系人:售后维修部
技术支持
技术支持时间(工作日):香港时间:上午9:30 - 上午11:30,
下午1:30 - 下午5:30电话:0773-7799838 传真:gxshengui@163.com
感谢您选择深桂科技的产品。如果您有创意产品或想法,请随时给我们发送电子邮件,也许我们可以进一步合作。我们的电子邮件地址是:gxshengui@163.com
- 2025-12-02
- 2025-12-02
- 2025-12-02
- 2025-12-01

