Page Title

第四课 在WU-Link中使用板载传感器——环境自动监测仪


2019-08-01 11:45:14

人类舒适的生活环境,与环境温度、光线强度密切相关。本课我们将使用WU-Link制作一个环境自动监测仪,实时显示周围环境的光线强度、温度值。

 

模块与指令


要制作本课的范例作品,需要认识以下这些新的硬件:

亮度传感器模块

亮度传感器其实是一个光敏管,它能够感知周围光线的强度,通过采集转化后输出具体数值。WU-Link主板上集成有一个亮度传感器,位于面板左下方,标记有英文单词“Light”(如下图所示)。


blob.png


温度传感器模块

温度传感器能够感受周围环境的温度,通过采集转化后输出温度值。WU-Link主板上也集成有一个温度传感器,位于面板右下方,标记有英文单词“Temp”(如上图所示)。


 

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

读板载亮度传感器指令: blob.png

属于板载类别指令;使用这个指令可以读取WU-Link板载亮度传感器的输出值,输出数值范围是(0~4095)。

 

读板载温度传感器指令:blob.png

属于板载类别指令;使用这个指令可以读取WU-Link板载温度传感器的输出值,输出数值范围是(0℃~50)。

 

作品制作


要制作本课的范例作品,先要掌握在WU-Link点阵屏上分别显示环境亮度、温度值的方法,了解亮度传感器、温度传感器的特点;然后编写代码,在WU-Link上同时显示亮度、温度传感器的值。

 

第一步:在点阵屏上显示亮度传感器值

要在点阵屏上显示亮度传感器的值,需要先对点阵屏初始化。具体初始化代码如下图所示:


blob.png


初始化点阵屏以后,可以在重复执行指令中添加点阵屏清除点阵屏显示数指令,再设置点阵屏显示数指令的参数为读板载光线传感器指令。这段代码先清除旧的点阵屏显示内容,然后显示新读取的板载光线传感器数     值。

具体主程序代码如下图所示:


blob.png


试一试:

将上图所示代码编译后下载到WU-Link,然后按下表要求将WU-Link放到不同的环境下测试亮度值,将点阵屏上显示的亮度值记录下来。

blob.png

 

 

第二步:在点阵屏上显示温度传感器值

要在点阵屏上显示温度传感器值,也是先初始化点阵屏(初始化程序代码如第一步所示);然后同样在重复执行指令中添加点阵屏清除点阵屏显示数指令,最后设置点阵屏显示数指令的参数为读板载温度传感器令。

具体主程序代码如下图所示:

blob.png

试一试:

将上图所示代码编译后下载到WU-Link,然后按下表要求测试不同环境下的温度值,将点阵屏上显示的温度值记录下来。

 

blob.png

 

第三步:在点阵屏上交替显示亮度、温度值

如果要在点阵屏上交替显示亮度、温度值,也是先初始化点阵屏(初始化程序代码如第一步所示);然后在重复执行指令中清除点阵屏显示内容后,再显示新读取的亮度传感器数值;延时“1000”毫秒以后再清除点阵屏显示内  容、显示新读取的温度传感器数值、再延时“1000”毫秒。

具体主程序代码如下图所示:

blob.png

试一试:

尝试删除上图所示程序中的两个延时指令,重新编译执行程序,还能够在点阵屏上正常交替显示亮度、温度值吗?为什么?

 

第四步:用AB按键控制显示亮度、温度值

在点阵屏上交替显示亮度、温度值并不是一个比较好的显示方案,其实可以充分利用WU-Link面板上的两个按键,使用按键来控制传感器数值的显示:按下按键“A”显示亮度传感器值、按下按键“B”显示温度传感器值。具体可以按   以下步骤编写程序:

    1.  初始化点阵屏(初始化程序代码如第一步所示);

2.  重复执行指令中添加判断指令,在判断指令的条件中添加读板载按键值指令,确认该指令参数“A”,也就是判断指令的条件是按键“A”按下。

3.  如果判断指令的条件成立,那么就执行点阵屏清除点阵屏显示数指令,设置点阵屏显示数指令的参数读板载亮度传感器指令。

4.  由于需要判断两个条件,因此可以单击判断指令左边的设置图标,在打开的设置窗口中,将否则如果添加如果的下方,为判断指令再添加一个判断条件。设置完成后再单击判断指令的设置图标关闭设置窗口

5.  判断指令的否则如果条件中,同样添加读板载按键值指令,修改该指令的参数为“B”,也就是否则如的判断条件是按键“B”按下。

6.  否则如果条件成立,那么就执行点阵屏清除点阵屏显示数指令,设置点阵屏显示数指令的参数为板载温度传感器指令。

具体主程序代码如下图所示:

blob.png

想一想:

如果不像上图所示程序这样使用判断指令,要用AB按键控制显示亮度、温度值,还可以怎么编写程序代码?

 

拓展与思考


除了在点阵屏上用数字显示亮度和温度值,你还能够在点阵屏上设计图案,形象的表示环境亮度、温度的适宜程度吗?