光是地球生命的来源,是人类生活的依据,更是人类认识外部世界的工具。在科技发达的今天,我们可以通过传感器来检测光,利用光帮助我们更好的生活。今天就让我们一起来欣赏光的魔法吧!
1、学习目标
l掌握OLED显示图片内容;
l掌握动态显示图像;
l巩固复习图片取模的方法,并将取模的图片显示到OLED屏幕上;
l学习光线传感器与它的编程方法;
l了解函数及它的使用。
2、认识光线传感器
光线传感器就是能够根据周围光亮明暗程度来调节屏幕明暗的装置。掏出你的手机放在阳光下,屏幕会迅速变暗,这就是光线传感器的作用了。光线传感器在手机上就是前置摄像头旁边的那一个小点,可用来调节手机屏幕的亮度和键盘灯。
好搭掌控板载一个光线传感器,可以用来检测环境光的强度。
3、指令学习
4、显示环境光强度值
编写如下程序:
光线传感器的返回值为0-4095,光线越强,数值越大。在常规环境中,光线传感器的返回值一般为0,可通过手机手电筒照射在传感器上感受数值的变化。
5、感光窗帘
光感窗帘的作用是模拟白天和黑夜的环境,光线较弱是为黑夜,拉上窗帘;光线强度较强时为白天,打开窗帘。当光线较强时,在好搭掌控屏幕上模拟窗帘打开的过程。下图为简易的窗帘闭合效果图。
打开画图软件调整窗帘图像大小,在画图工具栏中点击“重新调整大小”设置图片的像素,将“垂直”改为64,“水平”改为128。注意这里要根据实际图片比例进行设置,设置的图片大小可以小于128×64分辨率。设置完成后,将图片另存为BMP格式。
接着使用取模工具Image2Lcd对转换格式后的图片进行取模。选择参数,输出数据类型[C语言数组]、扫描模式[水平扫描]、输出灰度[单色]、宽高[128×64],勾选[颜色反转],可以适当调整亮度、对比度,直到图片显示清晰。然后点击保存,会提示你保存为一个“.c”后缀的文件,给这个文件合适的命名即可。
用记事本程序打开保存的“.c”后缀的文件,去掉红色标记的首尾两行。复制中间的16进制图像数据,这些数组就代表着图片的像素点。
然后开始编写程序,将这些16进制图像数据拷贝粘贴到绘制图像指令中,绘制窗帘看一下效果。
显示效果如下图所示:
窗帘显示效果没问题之后,我们接着编写2个函数,分别模拟打开窗帘和关闭窗帘的过程。
在“打开窗帘”函数中,我们通过在屏幕中央填充矩形遮挡窗帘图案的形式,来模拟窗帘缓慢打开的效果。每隔0.2秒将矩形起点的x坐标减少1,将矩形的宽度增加2,产生矩形由中间向两边均匀变宽的效果,视觉上就类似于窗帘被打开了。
“关闭窗帘”函数的原理与“打开窗帘”函数类似,我们通过在屏幕中央填充矩形遮挡窗帘图案的形式,来模拟窗帘缓慢闭合的效果。每隔0.2秒将矩形起点的x坐标增加1,将矩形的宽度减少2,产生矩形由两边向中间均匀变窄的效果,视觉上就类似于窗帘被关闭了
最后在重复执行中添加窗帘打开和关闭的函数:当检测到光线值较大时,说明是白天,打开窗帘,否则说明天色比较晚,就关闭窗帘。
运行结果:光线较弱时如左图;光线较强时如右图,中间的白色矩形会从屏幕中央向两边均匀变宽。
完整程序如下图所示:
6、拓展与思考
① 尝试做一个光控灯,当环境光比较弱时,控制RGB LED灯亮,否则灯灭。
② 好搭掌控的显示屏可以作为一个电子书阅读器,就像Kindle一样。利用光线传感器我们可以做一个手势翻书器,手指每遮挡一次光线传感器,电子书就翻一页。赶紧编程试试吧!