普通灯一般使用机械开关控制亮灭,而智能灯使用各种传感器控制亮灭。本课将学习制作一种智能声控灯,它能够在检测到周围光线比较暗、同时声音强度达到指定值以上时自动点亮。不仅能够给使用者带来方便,还可以节约用电。
要制作本课的范例作品,需要使用以下新的硬件模块:声音传感器和亮度传感器。
声音传感器模块 | |
图9-1 声音传感器模块
声音传感器里面有一个对声音敏感的电容式驻极体话筒,声波会使话筒内的驻极体薄膜振动,产生电压变化,通过转化和采集后输出具体数值(如上图9-1所示)。
好搭BOX套件中的声音传感器输出的声音强度取值范围是(0,4095)。
要控制声音传感器模块,可以使用以下指令
使用这个指令可以读取声音传感器的输出值。
亮度传感器模块 | |
亮度传感器其实是一个光敏管,能够感知周围光线的强度,通过转化和采集后输出具体数值(如下图9-2所示)。
好搭BOX套件中亮度传感器输出的光线强度取值范围是(0,4095)。
图9-2 亮度传感器模块
使用这个指令可以读取亮度传感器的输出值。
要制作本课的范例作品,可以按以下步骤先连接硬件、连接网络,然后进入“好好搭搭”网站编写、调试、编译、下载程序。
准备工作:搭建硬件、连接网络、进入网站 | |
第一步:搭建硬件、连接网络。将数码管模块、声音传感器模块、亮度传感器模块以及彩色LED模块放置于主控板上(如下图9-3所示);打开主控板的电源开关,等待主控板连接网络成功。
图9-3 “智能声控灯”范例作品硬件连接图
第二步:进入网站。打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“无线编程”网页中选择“好搭BOX智能实验箱”模板,进入程序设计页。
案例一:亮度检测仪 | |
用数码管显示亮度传感器检测到的环境亮度值,每隔0.5秒检测一次数值。具体程序代码如下图9-4所示
图9-4“亮度检测”的程序图
| 请在不同环境条件下检测亮度传感器的数值。 |
案例二: 声音测试仪 | |
用数码管模块和声音传感器模块制作一个简易的声音测试仪。用数码管显示声音传感器的数值,每隔0.5秒,声音传感器检测一次环境的声音。具体程序代码如下图9-5所示:
图9-5 “声音测试仪”程序代码
| 将上图9-5所示代码编译后下载到主控板上,然后在不同的环境下观测数码管的数值变化,将数码管上显示的数值记录下来。 |
我发现:________________________________________________________________
_______________________________________________________________________
案例三:光控灯 | |
要让亮度传感器控制彩色LED亮灭,需要对亮度传感器的值进行判断:如果亮度传感器所连接的模拟口读取的值小于“100”、也就是周围光线比较暗,那么点亮主板上的彩色 LED;否则熄灭彩色LED。具体的程序代码如下图9-6所示:
图9-6 “光控灯”程序代码
| 能否利用亮度传感器和蜂鸣器制作一个起床神器。 |
案例四:白天叫不亮的灯 | |
白天叫不亮的灯便是要用声音和亮度传感器同时控制灯光亮灭,也就是周围光线比较暗的同时,声音的响度还要达到一定的值,灯才会亮。这个程序代码的核心是对判断的条件进行设置,可以使用“数字和逻辑运算”类别中的“且”指令。也就是连接亮度传感器端口的值小于“100”的同时,连接声音传感器端口的值还必须大于“1000”,只有这两个条件都满足的情况下,彩色LED灯才会亮;否则,设置彩色LED灯是灭的。具体程序代码如下图9-7所示:
图9-7“白天叫不亮的灯”的程序图
| 如下图9-8所示程序脚本,与上图9-7有什么不同?它能否让智能声控灯正常工作?分析这两种程序编写方法有什么区别?你喜欢哪种方法? |
图9-8 “白天叫不亮的灯”程序代码2
| 根据实际环境光线及声音响度情况,调整具体数值,使得光控灯更有实用性。 |
|
除了使用亮度和声音传感器控制灯光,你还能让灯光控制更智能、使用更方便吗?
我打算这么做:_______________________________________________________
______________________________________________________________________。
做的时候需要注意:____________________________________________________
_______________________________________________________________________