本帖最后由 widjrerpfnvd 于 2022-7-19 10:28 编辑
有SES的2.66三色墨水屏,但没有人写驱动的具体操作。经过调试,发现用微雪的2.13三色墨水屏程序可以驱动起来,但因为分辨率不同,只能部分刷新,于是移植和修改了部分驱动,用于SES的2.66寸三色墨水屏,效果还行,所以共享出来。当然,GXEPD2库的初始化程序也已修改好,一样的道理(需要的话,我再发出来),这样可玩性更大。
第一部分 SES2.66三色墨水屏初始化
安装微雪的esp8266-waveshare-epd库文件后,可以通过下面的地址(C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\esp8266-waveshare-epd\src\utility),找到EPD_2in66b.cpp,这个就是2.66三色屏幕的驱动程序。
注意,替换后估计不能使用微雪或者Hink、大连佳显的2.66三色屏了(我没有试)。
/*以下只是SES2.66三色屏的初始化*/ void EPD_2IN66B_Init(void) { EPD_2IN66B_Reset();
EPD_2IN66B_SendCommand(0x06); // BOOSTER_SOFT_START EPD_2IN66B_SendData(0x17); EPD_2IN66B_SendData(0x17); EPD_2IN66B_SendData(0x17);
EPD_2IN66B_SendCommand(0x04); // POWER_ON EPD_2IN66B_ReadBusy();
EPD_2IN66B_SendCommand(0x00); // PANEL_SETTING EPD_2IN66B_SendData(0xCF);
EPD_2IN66B_SendCommand(0x50); // VCOM_AND_DATA_INTERVAL_SETTING EPD_2IN66B_SendData(0x77);
EPD_2IN66B_SendCommand(0x61); // TCON_RESOLUTION EPD_2IN66B_SendData(0x98); EPD_2IN66B_SendData(0x01); EPD_2IN66B_SendData(0x28);
EPD_2IN66B_SendCommand(0x82); // VCM_DC_SETTING_REGISTER EPD_2IN66B_SendData(0X0A); }
第二部分 不同板子的IO口对应
微雪官方的板子(使用8266)使用的IO口和Duck、甘草、半塘自制的板子的IO口是不同的。 微雪官方的BUSY使用GPIO4(即D2),DC使用GPIO0(即D3) Duck的BUSY使用GPIO5(即D1),DC使用GPIO4(即D2) 所以在驱动时,注意区分
第三部分 使用Loader向墨水屏传图 微雪8266无线模块墨水屏图传程序修改 使之支持SES的2.66三色屏幕的驱动
微雪8266无线图传程序默认文件夹是Loader文件夹,此文件夹可以放在任何位置,只需要打开里面的Loader.ino就可以使用。 因为SES的2.66三色墨水屏与微雪或者Hink、大连佳显的墨水屏初始化程序不通用,所以需要修改此文件夹中以下3个文件。 修改后的Loader文件夹,已上传网盘()
一、修改Loader.ino 主文件 主要是修改8266模块的无线网络,主要是以下两行 const char *ssid = "XXXX";//"your ssid"; const char *password = "XXX"; //"your password";
还要修改8266的网络IP地址 IP4_ADDR(&info.ip, 192, 168, 43, 168); IP4_ADDR(&info.gw, 192, 168, 1, 1); IP4_ADDR(&info.netmask, 255, 255, 255, 0); wifi_set_ip_info(STATION_IF, &info);
这样修改以后,启动8266后 ,就可以通过串口助手查看网络连接情况,并在浏览器中通过192, 168, 43, 168访问8266的图传程序了。 二、修改epd2in9.h 修改以下内容(找到对应的代码替换)
#define EPD_2IN9D_WIDTH 152 #define EPD_2IN9D_HEIGHT 296
int EPD_Init_2in9b() { EPD_Reset(); EPD_Send_4(0x01, 0x07, 0x00, 0x08, 0x00);//POWER_SETTING EPD_Send_3(0x06, 0x17, 0x17, 0x17);//BOOSTER_SOFT_START EPD_SendCommand(0x04);//POWER_ON EPD_WaitUntilIdle();
EPD_Send_1(0x00, 0xCF);//PANEL_SETTING EPD_Send_1(0x50, 0x77);//VCOM_AND_DATA_INTERVAL_SETTING; EPD_Send_1(0x30, 0x39);//PLL_CONTROL EPD_Send_3(0x61, 0x98, 0x01, 0x28);//TCON_RESOLUTION EPD_Send_1(0x82, 0x0A);//VCM_DC_SETTING_REGISTER
EPD_SendCommand(0x10);//DATA_START_TRANSMISSION_1 delay(2); return 0; }
三、修改scripts.h 修改以下内容 /* 因为是在2.9b基础上改的2.66三色驱动,所以在网页里面表单要修改以下, 即下面这部分,代码行为107 – 120 RB(10,'2.9bbb ') 在网页中找到的 2.9bbb就是2.66三色的对应项了 */
"setInn('RB',RB(0,'1.54 ')+RB(1,'1.54b')+RB(2,'1.54c')+\r\n" "RB(3,'2.13 ')+RB(4,'2.13b')+RB(5,'2.13c<br>')+RB(6,'2.13d<br>')+\r\n" "RB(7,'2.7 ')+RB(8,'2.7b <br>')+\r\n" "RB(9,'2.9 ')+RB(10,'2.9bbb ')+RB(11,'2.9c <br>')+RB(12,'2.9d<br>')+\r\n" "RB(13,'4.2 ')+RB(14,'4.2b ')+RB(15,'4.2c <br>')+\r\n" "RB(16,'5.83 ')+RB(17,'5.83b')+RB(18,'5.83c<br>')+\r\n" "RB(19,'7.5 ')+RB(20,'7.5b ')+RB(21,'7.5c <br>')+\r\n" "RB(22,'7.5 V2')+RB(23,'7.5bV2<br>')+\r\n" "RB(24,'7.5bHD ')+\r\n" "RB(25,'5.65f<br>') + RB(26,'7.5HD') + RB(27,'3.7<br>') + RB(28,'2.66') + RB(29,'5.83bV2<br>')+\r\n" "RB(30,'2.9b V3') + RB(31,'1.54bV2<br>') + RB(32,'2.13b V3') + RB(33,'2.9 V2<br>')+\r\n" "RB(34,'4.2b V2') +RB(35,'2.66b<br>') + RB(36,'5.83 V2') + RB(37,'4.01f<br>')+\r\n" "RB(38,'2.7b V2') + RB(39,'2.13V3 <br>') + RB(40,'2.13b V4'));\r\n" "}\r\n"
四、修改epd.h 修改内容 /* 在代码行33-36,可以修改IO口。 微雪的DC和BUSY分别对应的是GPIO4(即D2和GPIO5(即D1) 而甘草、duck驱动对应的是 GPIO0(即D3)和GPIO4(即D2) */ #define CS_PIN 15 #define RST_PIN 2 #define DC_PIN 0 /*甘草的驱动*/ #define BUSY_PIN 4
|