Page Title

第十一课 调光灯


2022-12-29 15:20:01


作品图片


1.png


情景描述


在生活中我们接触过很多带“角”的物品,角的度数越大,这个角就越大,根据角度的大小我们也能来控制灯的亮度,本课我们将利用好搭bit和外接的角度传感器和RGB灯模块制作一个调光灯。


知识与概念


要学习本课的案例,需要了解以下的概念与原理:

1.角度传感器

角度传感器即电位器,可以用来检测旋转角度的值,它的身体中有一个孔,可以配合乐高的轴,每转过1/16圈,角度传感器就会计数一次,往一个方向转动时计数增加,转动方向改变时,计数减少,计数和角度传感器的初始位置有关。

电位器模块.png


要制作本课的范例作品,还需要学习以下新的指令:

“映射”指令

2.png


该指定位于数学类别下,在数学里,映射是个术语,指两个元素的集之间元素相互“对应”的关系,使用这个指令可以建立两组数据之间的关系,将两个对象一一对应起来,比如生活中一个人的身份证号对应一个人,射箭每一箭必须射到鸟,还不能一箭射多只鸟。

 

作品制作


1.作品描述

调光灯是对角度传感器和RGB模块的综合应用,模拟一个可调节灯光的小台灯,当角度传感器向左旋转时,RGB灯逐渐变亮;向右旋转时,RGB灯逐渐变暗。利用映射指令、RGB相关指令、模拟口读取指令等编写程序,实现调光灯的制作。


2.硬件连接

调光灯是对好搭bit外接角度传感器和RGB模块的综合应用,角度传感器连接在“P1”端口,RGB模块连接在P0端口;将haoda:bit与计算机连接,将haoda:bit开机,确定电脑资源管理器跳出“MICROBIT”U盘,进入下载模式。

3.png


3.点亮RGB模块

进入好好搭搭MakeCode软件;

要点亮RGB LED,应该先使用“RGB初始化”指令,指定对应的引脚口选择P0,第二个空格里我们填入要显示的灯的数量为4,然后再使用“RGB显示颜色”指令,以白光(RGB值为0,0,0)为例,具体程序代码如下图所示:

4.png


注意:由于RGB模块外部没有灯罩,此时显示的颜色比较刺眼,尽量不要直视灯珠。


4.检测角度传感器的取值范围

通过“模拟读取引脚”指令读取角度传感器连接引脚口P1的值,通过旋转角度传感器的旋钮,我们可以调整角度的大小,为了方便我们查看对应的数值,我们在点阵屏上进行显示,观察数值的实时变化,具体代码如下图所示:

5.png


注意:在测试之前,我们需要把角度传感器上的拨片拨到5V再进行测试更加准确

试一试:把角度传感器旋钮旋至最左边和最右边,观察点阵屏显示的数值是多少?由此你得到角度传感器的取值范围是什么呢?


5.设立表示RGB灯亮度的变量

在变量类别下设立一个表示亮度的变量“light”,亮度的值跟随角度传感器的值变大而变大,因此我们先把“light”设为“模拟读取引脚P1”即前面我们获取角度传感器的值,亮度即表示RGB灯的亮度,调整RGB显示颜色对应的红、绿、蓝的值相当于在调整亮度,RGB对应的值越高,亮度越大,因此我们把“light”也放到RGB显示颜色的RGB值内,具体代码如下图所示:

6.png


试一试:修改程序中RGB参数值指令下的R、G、B三个参数值,看看发出的是什么颜色的光线。

7.png


6.通过角度传感器控制RGB灯的亮度

试一试:先运行一下前面的程序,你发现什么问题?通过之前的测试我们得到角度传感器的取值范围在0~1023,亮度即RGB值我们知道取值范围在0~255,那么怎么让这两种数据一一对应呢?

使用映射指令可以将角度与亮度建立一一对应的数据关系,第一个参数选择角度传感器的值即“模拟读取引脚P1”,从角度传感器获取的最低的值即0,从角度传感器获取的最高的值即1023,至RGB的最低值即0,至RGB的最高值即255使得RGB灯的亮度跟随角度传感器的值变化而变化。具体程序代码如下图所示:

8.png


拓展与思考


关于调光灯,你还有什么更好的想法吗?

我打算这么做:__________________________________________________________________________________________________________________________。

做的时候需要注意:______________________________________________________________________________________________________________________。