作品图片
情景描述
在生活中我们接触过很多带“角”的物品,角的度数越大,这个角就越大,根据角度的大小我们也能来控制灯的亮度,本课我们将利用好搭bit和外接的角度传感器和RGB灯模块制作一个调光灯。
知识与概念
要学习本课的案例,需要了解以下的概念与原理:
1.角度传感器
角度传感器即电位器,可以用来检测旋转角度的值,它的身体中有一个孔,可以配合乐高的轴,每转过1/16圈,角度传感器就会计数一次,往一个方向转动时计数增加,转动方向改变时,计数减少,计数和角度传感器的初始位置有关。
要制作本课的范例作品,还需要学习以下新的指令:
“映射”指令
该指定位于数学类别下,在数学里,映射是个术语,指两个元素的集之间元素相互“对应”的关系,使用这个指令可以建立两组数据之间的关系,将两个对象一一对应起来,比如生活中一个人的身份证号对应一个人,射箭每一箭必须射到鸟,还不能一箭射多只鸟。
作品制作
1.作品描述
调光灯是对角度传感器和RGB模块的综合应用,模拟一个可调节灯光的小台灯,当角度传感器向左旋转时,RGB灯逐渐变亮;向右旋转时,RGB灯逐渐变暗。利用映射指令、RGB相关指令、模拟口读取指令等编写程序,实现调光灯的制作。
2.硬件连接
调光灯是对好搭bit外接角度传感器和RGB模块的综合应用,角度传感器连接在“P1”端口,RGB模块连接在P0端口;将haoda:bit与计算机连接,将haoda:bit开机,确定电脑资源管理器跳出“MICROBIT”U盘,进入下载模式。
3.点亮RGB模块
进入好好搭搭MakeCode软件;
要点亮RGB LED,应该先使用“RGB初始化”指令,指定对应的引脚口选择P0,第二个空格里我们填入要显示的灯的数量为4,然后再使用“RGB显示颜色”指令,以白光(RGB值为0,0,0)为例,具体程序代码如下图所示:
注意:由于RGB模块外部没有灯罩,此时显示的颜色比较刺眼,尽量不要直视灯珠。
4.检测角度传感器的取值范围
通过“模拟读取引脚”指令读取角度传感器连接引脚口P1的值,通过旋转角度传感器的旋钮,我们可以调整角度的大小,为了方便我们查看对应的数值,我们在点阵屏上进行显示,观察数值的实时变化,具体代码如下图所示:
注意:在测试之前,我们需要把角度传感器上的拨片拨到5V再进行测试更加准确
试一试:把角度传感器旋钮旋至最左边和最右边,观察点阵屏显示的数值是多少?由此你得到角度传感器的取值范围是什么呢?
5.设立表示RGB灯亮度的变量
在变量类别下设立一个表示亮度的变量“light”,亮度的值跟随角度传感器的值变大而变大,因此我们先把“light”设为“模拟读取引脚P1”即前面我们获取角度传感器的值,亮度即表示RGB灯的亮度,调整RGB显示颜色对应的红、绿、蓝的值相当于在调整亮度,RGB对应的值越高,亮度越大,因此我们把“light”也放到RGB显示颜色的R、G、B值内,具体代码如下图所示:
试一试:修改程序中RGB参数值指令下的R、G、B三个参数值,看看发出的是什么颜色的光线。
6.通过角度传感器控制RGB灯的亮度
试一试:先运行一下前面的程序,你发现什么问题?通过之前的测试我们得到角度传感器的取值范围在0~1023,亮度即RGB值我们知道取值范围在0~255,那么怎么让这两种数据一一对应呢?
使用映射指令可以将角度与亮度建立一一对应的数据关系,第一个参数选择角度传感器的值即“模拟读取引脚P1”,从角度传感器获取的最低的值即0,从角度传感器获取的最高的值即1023,至RGB的最低值即0,至RGB的最高值即255,使得RGB灯的亮度跟随角度传感器的值变化而变化。具体程序代码如下图所示:
拓展与思考
关于调光灯,你还有什么更好的想法吗?
我打算这么做:__________________________________________________________________________________________________________________________。
做的时候需要注意:______________________________________________________________________________________________________________________。