Page Title

第6课 使用亮度与声音传感器——智能声控灯


2019-08-01 11:21:28

image.png 

普通灯一般使用机械开关控制亮灭,而智能灯使用各种传感器控制亮灭。本课将学习制作一种智能声控灯,它能够在检测到周围光线比较暗、同时声音强度达到指定值以上时自动点亮。不仅能够给使用者带来方便,还可以节约用电。

image.png 

要制作本课的范例作品,需要使用以下新的硬件模块:

 

亮度传感器模块


亮度传感器其实是一个光敏管,能够感知周围光线的强度,通过转化和采集后输出具体数值(如下图6-1所示)。

WULink-NOVA套件中亮度传感器的输出信号为模拟量,调用“读模拟口”指令读取,光线强度取值范围是(04095)。

blob.png             blob.png

 图6-1 亮度传感器模块                图6-2 声音传感器模块

声音传感器里面有一个对声音敏感的电容式驻极体话筒,声波会使话筒内的驻极体薄膜振动,产生电压变化,通过转化和采集后输出具体数值(如上图6-2所示)。

WULink-NOVA套件中的声音传感器输出信号也为模拟量,调用“读模拟口”指令读取,声音强度取值范围是(04095)。

 

image.png 

要制作本课的范例作品,可以按以下步骤先连接硬件、连接网络,然后进入“好好搭搭”网站编写、调试、编译、下载程序。

第一步:连接硬件、连接网络                        


首先将模块与主控板连接起来,亮度传感器模块连接A0”端口、声音传感器模块连接“A1”端口、RGB LED模块连接“S0”端口、数码管模块连接“C1”端口;将电池插入电源接口(如下图6-3所示);接着打开电源开关,等待主控板连接网络成功。

blob.png


图6-3 “智能声控灯”范例作品硬件连接图

第二步:在数码管上显示亮度传感器的值                        


打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“无线编程”网页中选择“WULink-NOVA”模板,进入“WULink-NOVA”编程设计页”。

要在数码管上显示亮度传感器的值,可以使用“重复执行”指令,重复执行“数码管清除”、“数码管显示”及“延迟”指令,再将“读模拟口”指令作为“数码管显示”指令的显示数值参数。由于亮度传感器连接的是“A0”端口,因此就会在数码管上每隔“500”毫秒,即每隔0.5秒刷新显示当前环境的亮度值。具体程序代码如下图6-4所示:

blob.png

图6-4 “在数码管上显示亮度传感器值”程序代码

image.png 

将上图76-4所示代码编译后下载到主控板上,然后按下表要求测试不同环境下的亮度值,将数码管上显示的数值记录下来。

 

 

image.png

我发现:________________________________________________________________

 

第三步: 在数码管上显示声音传感器的值                       


与数码管上显示亮度传感器值的程序类似,由于声音传感器连接的是A1”端口,因此在数码管上显示声音传感器值的程序只需要修改“读模拟口”指令的参数为“A1”,这样在数码管上每隔“500”毫秒,即每隔0.5秒刷新显示的就是当前环境的声音响度值。具体程序代码如下图6-5所示:

blob.png

图6-5 “在数码管上显示声音传感器值”程序代码

image.png 

将上图6-5所示代码编译后下载到主控板上,然后按下表要求手动调节电位器上转轴的位置,将数码管上显示的数值记录下来。

 

 

image.png

我发现:________________________________________________________________

_______________________________________________________________________

 

第四步:用亮度传感器控制灯光的亮灭                   


要让亮度传感器控制LED亮灭,需要对亮度传感器的值进行判断:如果亮度传感器所连接的“A0”模拟口读取的值小于指定值(本例中为500)、也就是周围光线比较暗,那么点亮连接在S0”端口的RGB LED;否则熄灭RGB LED。具体的程序代码如下图6-6所示:


blob.png

图6-6 “用亮度传感器控制RGB LED亮灭”程序代码

为了使程序更简洁,上图76-6中的程序使用了名为“RGB_SET”的函数模块,具体代码如下图6-7所示。

blob.png

图6-7 RGB_SRT”函数模块代码

image.png 

如何在用亮度传感器控制灯光亮灭的同时,用数码管显示实时的周围环境亮度值?

 

 

第五步: 用亮度和声音传感器同时控制灯光亮灭                       


要用声音和亮度传感器同时控制灯光亮灭,也就是周围光线比较暗的同时,声音的响度还要达到一定的值,灯才会亮。这个程序代码的核心是对判断的条件进行设置,可以使用“数字和逻辑运算”类别中的“且”指令。也就是连接亮度传感器“A0”端口的值小于“1000”的同时,连接声音传感器“A1”端口的值还必须大于“2000”,只有这两个条件都满足的情况下,灯才会亮;否则,设置灯是灭的。具体程序代码如下图6-8所示:

blob.png

 

图6-8 “用亮度和声音传感器同时控制灯光亮灭”程序代码

image.png 

如下图6-9所示程序脚本,与上图76-8有什么不同?它能否让智能声控灯正常工作?分析这两种程序编写方法有什么区别?你喜欢哪种方法?

 

 

blob.png

图6-9 “用亮度和声音传感器同时控制RGB LED亮灭”程序代码2

 

image.png 

根据实际环境光线及声音响度情况,调整具体数值,使得智能声控灯更有实用性。

 

 

image.png 

除了使用亮度和声音传感器控制灯光,你还能让灯光控制更智能、使用更方便吗?

我打算这么做:_______________________________________________________

______________________________________________________________________

做的时候需要注意:____________________________________________________

______________________________________________________________________