火灾报警器
使用火焰传感器和蜂鸣器制作火灾报警器。
器材清单
Romeo、USB数据线、蜂鸣器、火焰传感器
火焰传感器
火焰传感器可以用来探测波长在760纳米~1100纳米范围内的光源。如下图所示,该模块印有“A”(A为Analog的缩写)标识,说明该传感器为模拟传感器,需要连接到模拟针脚(如下图所示)。模拟传感器是一种能够将感受到的信息转化为模拟信号输出的装置,如光线传感器、声音传感器、温度传感器等。
Romeo上的模拟针脚共有8组,编号从A0到A7,输入值的范围为0到1023(输入值的范围与Romeo自身的配置有关。Romeo无法直接读取模拟值,需要用到“模数转换器”将模拟量转化为它能处理的数据。每一个模数转换器的精度为10bit,也就是说能读取2的10次方(1024)个状态,因此输入值得范围为0~1023)。
火焰传感器有黑、红、蓝三根线,在接线时注意将其颜色与Romeo模拟针脚颜色一一对应。
模拟输入
温度、光照强度等物理量不只有0或1两个值,而是在某一范围内变化,这样的物理量被称之为模拟量(Analog)。模拟输入是指读取指定模拟针脚的模拟量,如下图所示。假如将火焰传感器连接到模拟针脚A3,该程序读取到的模拟量则在0到1023之间。
模拟输入的针脚范围为A0~A7。
模拟传感器的类型大致有以下几种,如下图所示。
串口区
如何观察传感器所获取到的模拟量呢?Mind+中的串口区可以监控串口的通讯状况,并可用来显示从Romeo发来的数据。Mind+中的串口区位于界面右下角,如下图所示。
串口区的两大功能:1、显示烧录状态以及程序运行状况的区域;2、显示串口通信数据。
上图左下角为串口的开关,打开之后会显示程序运行结果。
开关旁边为清除输出,用以清空终端框窗口。
中间位置为串口输入框,用以向串口输入数据。
右下角点击菜单栏,可选择是否自动滚屏,设置串口波特率,还可更改输出格式。
若想在串口监视器中显示对应传感器获取的值,需要在程序中用到“Romeo”中的串口模块。假如火焰传感器连接Romeo的模拟针脚A3,则利用串口监视器显示读取到的模拟量的参考程序如下图所示。
如果/否则语句
如果/否则语句是一种二分支选择结构,即如果条件满足,执行语句体,否则执行另一语句体。当检测到火源时蜂鸣器报警,否则蜂鸣器不会发出声音,这种二选一的情况正适合用如果/否则语句实现。如下图所示,当条件满足时,即读取模拟针脚A3的值大于100时,蜂鸣器报警;当条件不满足时,蜂鸣器静音。
实现过程
(一)连接蜂鸣器、火焰传感器与Romeo
准备器材,将蜂鸣器及火焰传感器(虽然本款传感器能够用于探测火源,但是它并不防火,使用时应当尽量避免其与火源直接接触)与Romeo进行连接,如下图所示,蜂鸣器连接数字针脚3,火焰传感器连接模拟针脚A7。
(二)编写程序
火灾报警器程序中,假设模拟针脚A7读取到的模拟量达到100时蜂鸣器报警,参考程序如下图所示。
(三)测试效果
上传程序,验证火灾报警器是否可以起到预期的作用。
拓展提升
本实验制作的火灾报警器的警报声是持续且没有变化的报警声,请将其制作成类似于警车的警报声。结合蜂鸣器的知识,尝试制作拥有不同警报声的火灾报警器。
评论