自制DIS实验入门篇11显示模块之1
第11篇显示模块之液晶
上一篇讲了液晶模块的使用,虽然很好用也很简单,但是缺点是它只能显示字符,无法显示中文或者更复杂的图形,这一篇我们来玩一下液晶模块。
的意思是这个液晶屏的分辨率是*64,这个液晶非常的经典。当然既然有,当然也会有*32,*等等各种不同分辨率的液晶模块,不过为了简单起见,我们就只玩一下Mixly里已经内置了库函数的液晶。
一、液晶的字符显示
其实液晶模块有很多种类,下面这种是我以前经常用的,黄绿屏的。
这种屏背后有8个管脚(后面四个不是用来驱动屏幕,用来读取字库的,当然你买的也有可能是不带字库的,那这四个管脚就没用的)。
这个屏幕的程序在Mixly显示屏模块中的第二个程序块(如下图)
将程序块拖入编程区后,我们需要修改一下初始化里的模块型号,改成LCM,然后CSDCRST里面的管脚号自己随意填一下,我这里填了12、13、14。
然后再拖一个page1的函数块出来,最后的程序如下图:
然后开始接线,根据我们在程序块里填写的管脚号进行连接:
LCDESP32
CS----------------12
RST----------------14
RS(DC)----------13
SDA(MOSI)----23
SCK(CLK)------18
VDD----------------5V
VSS----------------GND
LEDA----------------3V3
烧录程序后就可以点亮屏幕了:
虽然能显示,但是这个效果实在太糟糕了,主要是对比度太高了,看起来黑乎乎的一片。本来这个屏幕其实也挺好用的,就是这个对比度调节比较麻烦,Mixly里没有提供调节的程序块。那怎么办呢,只好通过修改库函数里的参数来调节了,首先得找到这个调节的库函数位置:
文件位置在...
...\Mixly2.0-rc0-Win10-x64\arduino-cli\libraries\U8g2\src\clib下
这个文件,用记事本打开它
在行,就是这个程序:
U8X8_CA(0x,),
将里面的改小一些,我改成了后的效果如下:(改好后注意保存)
怎么样,是不是好多了。
说完了这个黄绿屏的LCD,我再来介绍一种比较新的OLED的屏幕:
这个屏幕接线是IIC方式的,这种数据接线我们已经第三次遇到了。这个的接线我就不再说了。程序如下:
显示效果在上图,黑底白字,当然也有其它颜色可以选择。这种屏幕就没有对比度的问题了。
上面说到的都是静态字符的显示,但实际上真实实验中我们最需要的是动态数字的显示,本来上一篇液晶里也要介绍的,但是写到后面忘记了,所以这里一并说了,其实很简单,就是只需要用变量替换掉原来显示的字符串即可,如下面的程序,实现了一个简单的计数:
二、液晶的中文和图像显示
其实中文显示原本比较复杂的,在没有Mixly这些库之前还需要用取模软件先取模,然后再写入,比较麻烦,不过现在简单多了,Mixly里直接内置了取模函数,下面的程序就实现了中文加英文混合显示。
实际上首先先将一个中文变成了一个图片,然后显示图片。里面字号16px意思就是宽和高各为16像素的中文字,要根据自己输入的中文字数计算一下这个图片的宽和高的像素,英文好像三个字符宽是两个汉字的宽,大家自己看情况调节即可。
最后是图像的显示,Mixly中已经内置了很多图像绘制的函数:
我这里就不再绘制了,大家可以自己玩一下,当然理论上我们也可以将一张图片显示在液晶屏上,不过由于Mixly里没有内置的直接显示外接图片的函数,所以需要用取模软件将图片取模后再来显示,篇幅有限,这里就不介绍这种方法了,如果有需要的朋友可以留言,如果需要多的话下次再开一篇来讲。
MakeMaker谢谢您的支持!
转载请注明:http://www.abuoumao.com/hyfz/896.html