楼主: 驴友花雕
|
[项目] 【Arduino】168种传感器系列实验(217)---2.9寸红黑三色墨水屏 |
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百一十七:EPD Eink 电子墨水显示器 SUNY 2.9 英寸 EPD 屏幕无线数字电子纸显示器模块 DEPG0290RWS800F6黑白红三色墨水屏(珠海三一科技) 实验说明:使用傲雪驱动库e-Paper 项目之二:傲雪黑白色电子计时器(测试2.9寸彩色屏) 实验开源代码
|
程序说明 以Arduino UNO控制2.9寸墨水屏为例,打开epd2in9_V2目录: 其中: epd2in9_V2.ino:使用Arduino IDE打开即可; epd2in9_V2.cpp(.h): 是2.9寸墨水屏的驱动程序; epdif.cpp(.h): 是硬件接口定义,里面封装了读写管脚电平,SPI传输数据,以及管脚初始化; font8.cpp、font12.cpp、font16.cpp、font20.cpp、font24.cpp、fonts.h:为不同大小字符的模; imagedata.cpp(.h):是图片数据,这个可以通过Img2Lcd软件把2位深度的BMP图片转换成数组。 |
程序分为底层硬件接口、中间层墨水屏驱动、上层应用三部分。 1、底层硬件接口 在epdif.cpp(.h)两个文件中定义了硬件接口,并封装好读写管脚电平、延时、SPI传输等函数。 (1)写管脚电平 第一个参数为管脚、第二个为高低电平。(2)读管脚电平 参数为管脚,返回值为读取管脚的电平。(3)延时 毫秒级别延时。(4)SPI输出数据 参数为char型,占8位。(5)硬件初始化 里面已经封装好了各管脚的输入输出,以及SPI的初始化。 |
2、中间层墨水屏驱动 (1)实例化墨水屏 由于Arduino是C++开发,需要把墨水屏实例化:
(2)墨水屏初始化,再屏幕开始工作时和退出睡眠模式之后调用 主要型号 其他型号
(3)清屏,把墨水屏刷成白色 可能某些程序里面会被拆分成两句,但是他们最终的效果都是一样的:
(4)传输一帧的图片数据并显示
(5)睡眠 进入睡眠模式,墨水屏讲进入超低耗电,如果长时间不用需要刷白保存,否则长时间会有残影。 |
3、上层应用 上层应用也就是我们的需要用墨水屏实现的功能,一般就是画图、字符等功能,也就是epdpaint.cpp里面定义的功能 首先需要讲解一下缓存的坐标系,为了传输方便通常吧坐上定位原点,往右X轴增加,往下Y轴增加: 打开epdpaint.h可以看到如下: 只需要看public下函数即可: (1)初始化图片缓存
第一个参数是图片缓存,第二个参数是定义图片长度,第三个参数定义图片高度,你可能会在程序中看到如下
第二、三个参数这里设置成0,是因为下面还可以设置。 |
(2)设置高宽、获取高宽、设置翻转角度、获取翻转角度
(3)获取图像缓存
(4)画点 在坐标(x,y)(5)写字符 在(x,y)这一点为左顶点写字符ascii_char,字体大小为font,颜色为colored(6)写字符串 在(x,y)这一点为左顶点写字符串text,字体大小为font,颜色为colored(7)画线 以(x0,y0)为起点,(x1,y1)为终点画一条线,斜率任意;(8)画横线 以(x0,y0)为起点,(x1,y1)为终点画一条横线,速度比DrawLine()快(9)画竖线 以(x0,y0)为起点,(x1,y1)为终点画一条竖线,速度比DrawLine()快(10)矩形,画空心框 以(x0,y0)为起点,(x1,y1)为终点画一个框,边的颜色为colored(11)填充矩形,画实心框 以(x0,y0)为起点,(x1,y1)为终点画一个框,并且内部填充,颜色为colored(12)画空心圆 以(x,y)为圆心,radius为半斤画一个空心圆,颜色为colored(13)画实心圆 以(x,y)为圆心,radius为半斤画一个实心心圆,颜色为colored |
本帖最后由 驴友花雕 于 2021-11-17 14:49 编辑 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百一十七:EPD Eink 电子墨水显示器 SUNY 2.9 英寸 EPD 屏幕无线数字电子纸显示器模块 DEPG0290RWS800F6黑白红三色墨水屏(珠海三一科技) 实验说明:使用傲雪驱动库e-Paper 项目之三:简单的清屏程序 实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百一十七:EPD Eink 电子墨水显示器 SUNY 2.9 英寸 EPD 屏幕无线数字电子纸显示器模块 DEPG0290RWS800F6黑白红三色墨水屏(珠海三一科技) 实验说明:使用傲雪驱动库e-Paper 项目之四:清屏并显示傲雪电子的LOGO(测试最简程序) 实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百一十七:EPD Eink 电子墨水显示器 SUNY 2.9 英寸 EPD 屏幕无线数字电子纸显示器模块 DEPG0290RWS800F6黑白红三色墨水屏(珠海三一科技) 实验说明:使用傲雪驱动库e-Paper 项目之五:画八个空心与实心圆 实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百一十七:EPD Eink 电子墨水显示器 SUNY 2.9 英寸 EPD 屏幕无线数字 电子纸显示器模块 DEPG0290RWS800F6黑白红三色墨水屏(珠海三一科技) 实验说明:使用傲雪驱动库e-Paper 项目之六:不同字号,写字符"Hello world!" 实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百一十七:EPD Eink 电子墨水显示器 SUNY 2.9 英寸 EPD 屏幕无线数字电子纸显示器模块 DEPG0290RWS800F6黑白红三色墨水屏(珠海三一科技) 实验说明:使用傲雪驱动库e-Paper 项目之七:秒动电子计时器 实验开源代码
|
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed