Windows on Device 项目实践 3 - 火焰报警器制作
在前两篇《Windows on Device 项目实践 1 - PWM调光灯制作》和《Windows on Device 项目实践 2 - 感光灯制作》中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成PWM调光灯和感光灯的制作。在这个项目中,我们会使用火焰传感器和蜂鸣器,完成一个简单的火焰报警器的制作。
1.火焰传感器
火焰传感器外形和LED很像,(即红外接收三极管)是机器人专门用来搜寻火源的传感器,本传感器对火焰特别灵敏。火焰传感器利用红外线对火焰非常敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号,输入到中央处理器,中央处理器根据信号的变化做出相应的程序处理。
红外接收三极管的短引线端为负极,长引线端为正极。按照下图将负极接到5V接口中,然后将正极和10K电阻相连,电阻的另一端接到GND接口中,最后从火焰传感器的正极端所在列接入一根跳线,跳线的另一端接在模拟口中。如图1所示。

图1:火焰传感器的连接
2. 元器件和硬件连接
这次实践项目需要使用的元器件有:
- 火焰传感器:1个
- 蜂鸣器:1个
- 10K电阻:1个
- 面包板实验跳线:若干
1)蜂鸣器的连接
蜂鸣器有两个引脚,标记为“正”极性的引脚接Galileo的数字接口输出,“负”极性的引脚接Galileo的地。在程序控制上,Galileo数字接口输出高低电平就可以控制蜂鸣器的鸣响。
2)火焰传感器的连接
火焰传感器按照上图1所讲述的火焰传感器的接线方法,将火焰传感器接到Galileo的模拟5接口。完成整个实验的连线。
3.实验原理
在有火焰靠近和没有火焰靠近两种情况下,模拟口读到的电压值是有变化的。实际用万用表测量可知,在没有火焰靠近时,模拟口读到的电压值为0.3V左右;当有火焰靠近时,模拟口读到的电压值为1.0V左右,火焰靠近距离越近电压值越大。
所以在程序一开始,我们可以先存储一个没有火焰时模拟口的电压值i。接着不断的循环读取模拟口电压值j、同存储的值做差值k=j-i、差值k与0.6V做比较。差值k如果大于0.6V,则判断有火焰靠近让蜂鸣器发出声音以作报警;如果差值小于0.6V,则蜂鸣器不响。
4.源代码解析
// Main.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "arduino.h"
int _tmain(int argc, _TCHAR* argv[])
{
return RunArduinoSketch();
}
int flame = 0;//定义火焰接口为模拟0 接口
int Buzzer = 8;//定义蜂鸣器接口为数字8 接口
int val = 0;//定义数字变量
void setup()
{
pinMode(Buzzer, OUTPUT);//定义蜂鸣器为输出接口
pinMode(flame, INPUT);//定义火焰传感器为输入接口
}
void loop()
{
unsigned char i, j;//定义变量
val = analogRead(flame);//读取火焰传感器的模拟值
Log(L"val: %d\r\n", val);//输出模拟值,并将其打印出来
if (val >= 600)//当模拟值大于600 时蜂鸣器鸣响
{
for (i = 0; i<80; i++)//发出一个频率的声音
{
digitalWrite(Buzzer, HIGH);//发声音
delay(1);//延时1ms
digitalWrite(Buzzer, LOW);//不发声音
delay(1);//延时ms
}
for (i = 0; i<100; i++)//发出另一个频率的声音
{
digitalWrite(Buzzer, HIGH);//发声音
delay(2);//延时2ms
digitalWrite(Buzzer, LOW);//不发声音
delay(2);//延时2ms
}
}
else
{
digitalWrite(Buzzer, LOW);
}
}
4. 调试结果
启动Galileo,利用TelNet建立连接,然后点击调试。程序就会通过网口下载到Galileo上。当有火焰靠近火焰传感器时,蜂鸣器发出报警。当火焰熄灭时,蜂鸣器报警停止。

调试的视频链接如下,大家可以看到火焰报警的效果:http://v.youku.com/v_show/id_XODU5MzMwNDc2.html
Windows on Device 项目实践 3 - 火焰报警器制作的更多相关文章
- Windows on Device 项目实践 2 - 感光灯制作
在上一篇<Windows on Device 项目实践 1 - PWM调光灯制作>中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成一个 ...
- Windows on Device 项目实践 5 - 姿态控制灯制作
在前面几篇文章中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成PWM调光灯.感光灯.火焰报警器和智能风扇的制作,涉及到了火焰传感器.DC直流电机. ...
- Windows on Device 项目实践 4 - 智能风扇制作
在前面的文章中,我们已经学习并且利用Intel Galileo开发板和Windows on Device制作了火焰报警器.感光灯和PWM调光灯.在这个项目中,我们来利用温度传感器和直流电机,完成一个简 ...
- Windows on Device 项目实践 1 - PWM调光灯制作
在前一篇文章<Wintel物联网平台-Windows IoT新手入门指南>中,我们讲解了Windows on Device硬件准备和软件开发环境的搭建,以及Hello Blinky项目的演 ...
- Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)
转载:http://www.cnblogs.com/EasonJim/p/6295372.html Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践) 前提: 这一篇是继上一 ...
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- Windows平台分布式架构实践 - 负载均衡(下)
概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...
- Hangfire项目实践
Hangfire项目实践分享 Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget ...
- MVC项目实践,在三层架构下实现SportsStore-08,部署到IIS服务器
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
随机推荐
- [OpenCV] Background subtraction
不错的草稿.但进一步处理是必然的,也是难点所在. http://docs.opencv.org/master/d1/dc5/tutorial_background_subtraction.html#g ...
- C#运用GmaQrCode生成二维码
项目中需要生成二维码,方法比较多,可以采用JS插件,也可以采用第三方插件后台生成二维码,在后台方法中可以采用QRCode或者GmaQrCode,现在介绍一种C#在后台生成二维码的方法: /// < ...
- 用HTML5 CANVAS做自定义路径的动态效果图片!
最近对HTML5开始感兴趣了,实现的效果如下图,大家可以从代码里换掉图片 我用的是canvas里面的2d绘图,其中上图的路径是网上在线绘制的,我太懒了,哈哈 下面是网址: http://www.vic ...
- 自动实现接口的实例,mybatis就是这样实现的
思考 很多人用过MyBatis,或者使用过SpringData,那么和传统的jdbc相比,差别在哪里呢?传统的dao层,接口需要有实现,需要连接发出sql,需要接收返回值,但是mybatis只需要实现 ...
- JAVAWEB项目实现验证码中文、英文、数字组合
验证码基础 一.什么是验证码及它的作用 :验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意 ...
- C++如何调用C#开发的dll
序言 本文介绍一个C++如何调用C#开发的dll实例. 前言 C++编写的程序为非托管代码,C#编写的程序为托管代码.托管代码虽然提供了其他开发平台没有的许多优势,但由于前期系统及历史版本很多使用的是 ...
- [Excel] Worksheet.PasteSpecial
PasteSpecial(Format, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel, NoHTMLFormatting) 1. F ...
- SQL Server:APPLY表运算符
SQL Server 2005(含)以上版本,新增了APPLY表运算,为我们日常查询带来了极大的方便. 新增的APPLY表运算符把右表表达式应用到左表表达式中的每一行.它不像JOIN那样先计算那个表表 ...
- C#基础-文件夹复制与删除
代码来源:http://blog.163.com/u_tommy_520/blog/static/20406104420147493933662/ 最近做MVC网站时刚好用到,用以提供一个完整的文件夹 ...
- csharp: MySQL Stored Procedure using DAL
# 建表 塗聚文 20160907 drop table attendrecord; create table attendrecord ( seq INT NOT NULL PRIMARY KEY ...