1、产品介绍: 一、长尺寸:30mm X宽10mm X高13mm 二、主要芯片:LM393、红外接收头 三、工作电压:直流3-5V 四、特点: 1、具有信号输出指示。 2、单路信号输出。 3、输出有效信号为低电平。 4、用于检测波长在760纳米~1100纳米范围内的热源 5、探测角度达60度。 6、电路板输出开关量!(可直接接单片机) 实现功能:此版配套测试程序 使用芯片:AT89S52 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 【声明】此程
2、序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
/********************************************************************
说明:1、当测量浓度大于设定浓度时,单片机IO口输出低电平
*********************************************************************/
#include
3、 //库文件 #define uchar unsigned char//宏定义无符号字符型 #define uint unsigned int //宏定义无符号整型 /******************************************************************** I/O定义 *********************************************************************/ sbit LED=P1^0; //定义单片机P1口的第1位(即P1
4、0)为指示端 sbit DOUT=P2^0; //定义单片机P2口的第1位(即P2.0)为传感器的输入端 /******************************************************************** 延时函数 *********************************************************************/ void delay()//延时程序 { uchar m,n,s; for(m=20;m>0;m--) for(n=
5、20;n>0;n--) for(s=248;s>0;s--); } /******************************************************************** 主函数 *********************************************************************/ void main() { while(1) //无限循环 { LED=1; //熄灭P1.0口灯
6、 if(DOUT==0)//当浓度高于设定值时,执行条件函数 { delay();//延时抗干扰 if(DOUT==0)//确定浓度高于设定值时,执行条件函数 { LED=0; //点亮P1.0口灯 } } } } /********************************************************************
7、 结束 *********************************************************************/ 其中红外光波长在940纳米附近时,灵敏度达到最大。输出信号为模拟信号,信号强弱和火源大小、离火源距离成反比关系。可直接用ad进行采集。+5v电源就可以工作。该传感器在灭火机器人比赛或者搜救机器人比赛中起着非常重要的作用,它可以当做机器人的眼睛来寻找火源,可利用它可以制作灭火机器人、足球机器人等。 Arduino 火焰传感器 模拟传感器 电子积木 灭火机器人 201
8、0年最新推出的远红外火焰传感器可以用来探测火源或其它一些波长在760纳米~1100纳米范围内的热源,探测角度达60度,其中红外光波长在940纳米附近时,其灵敏度达到最大。传感器特设M3固定安装孔,调节方向与固定方便易用,此火焰传感器在灭火机器人比赛或者搜救机器人比赛中起着非常重要的作用,它可以当做机器人的眼睛来寻找火源或光源足球,结合Arduino控制器与传感器扩展板,可利用它可以制作灭火机器人、足球机器人等。 火焰传感器探头的工作温度为-25摄氏度~85摄氏度,在使用过程中一定要注意火焰传感器探头离火焰的距离不能太近,以免造成损坏。 下面为火焰传感器实测数据,一根蜡烛为火
9、源,室内正常日光灯环境实测: 无火源时,对着日光灯:0.35V-0.12V 10cm: 4.98V 20cm:4.88V 30cm:4.72V 40cm:3.77V 50cm:2.89V 60cm:2.34V 70cm:1.92V 80cm:1.45V 90cm:1.15V 100cm:0.96V 【原创】【arduino】【机器人II号】arduino检测火焰的程序 我在arduino168上检测火焰的程序,直接在LCD屏上显示出来,最大火焰的值10,无火焰是显示0。火焰检测的模块接在模拟1口上。其实程序很简单,就是一个读取模拟值的程序而已…… ---------
10、程序的loop部分(其他部分略)--------------------- { int val3; float temp; val3=analogRead(1); temp=val3/10 ; val3=(int)temp; lcd.setCursor(11, 0); lcd.print(0x30+val3/100,BYTE); lcd.print(0x30+(val3%100)/10,BYTE); lcd.print
11、'.'); lcd.print(0x30+val3%10,BYTE); lcd.print("f"); } --------------------loop部分结束------------------ 自己写的程序,不太好,请谅解了啊! ----------------------------------------------2011-04-05补充图片-------------------------------- 这个是传说中的火焰传感器了: 测试火焰:用的是蜡烛 最近的地方显示9.9f: 随着距离的拉远:变成了4.5f:
12、 变成了4.5f: 再远一点: 变成了2.8f: 吹灭之后——0.0f: 蜡烛图片: 这几天一口气解决了多个传感器与arduino的连接于访问。 dht11温湿度传感器,超声波、火焰、环境光线、人体热释电这几个。 温湿度传感器是从机器人基地购买的,因为他们提供了积木式的链接针脚和连接线,只要对应插好就行,十分方便,相关代码也在前篇文章介绍的有,直接复制就能用。 因为火焰和环境光传感器能输出0~255的值,我把它们接到模拟口上面了,以便实时发送数据出来。人体感应的传感器由于只输出高低电平,所以接到了数字口。 对于这三个传感器的数据读
13、取,我采用了统一的函数,因为他们的读取方式一样,直接read输入口的针脚就行。 函数如下: int GetData(int pinnum,String pmod){ int datastr; if(pmod=="analog"){ datastr=analogRead(pinnum); } else { datastr=digitalRead(pinnum); } return datastr; } 其中 函数括号里 pinnum是要输入针脚号码,pinmod是输入数字口还是模拟口,模拟口就写 analog,数字口就写digital。 先定义好每个传感器的针脚
14、号码,在setup里定义好输出,然后在loop里需要读出数据的地方使用该函数。 比如: int lightpin=1;//环境光线脚 analog int anmpin=50;//人体接近脚 digital int firepin=3;//火焰脚 analog String OutStr; void setup(){ Serial.begin(9600); pinMode(anmpin,INPUT); pinMode(firepin,INPUT); pinMode(lightpin,INPUT); } void loop(){ OutStr =GetData(an
15、mpin,"digital"); Serial.print(OutStr); OutStr =GetData(firepin,"analog"); Serial.print(OutStr); OutStr =GetData(lightpin,"analog"); Serial.print(OutStr); } 这样便能方便的输出需要的数据了,对于接了多个类似只负责输出数据的传感器的arduino很适用。 关于超声波传感器,我也弄了个函数 int GetCSB(){ digitalWrite(csboutputPin, LOW); // 使发出发出超声波
16、信号接口低电平2μs delayMicroseconds(2); digitalWrite(csboutputPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs delayMicroseconds(10); digitalWrite(csboutputPin, LOW); // 保持发出超声波信号接口低电平 int distance = pulseIn(csbinputPin, HIGH); // 读出脉冲时间 distance= distance * 0.017; // 将脉冲时间转化为距离(单位:厘米)
17、 return distance; //输出距离值 } 要注意的是,我适用的传感器是4个针脚,2个分别接vcc和gnd,另外2个接数字口,分别负责电平信号的输入与输出。 要读出数据的话 只要写 int s=GetCSB(); 就完事了,很方便吧 呵呵 Arduino 电子积木 模拟传感器 火焰传感器 灭火机器人专用 远红外探测 火焰传感器可以用来探测火源或其它波长在760纳米~1100纳米范围内的光源。在灭火机器人比赛中,火焰探头起着非常重要的作用,它可以用作机器人的眼睛来寻找火源或足球。利用它可以制作灭火机器人、足球机器人等。
18、 火焰传感器的探测角度达60度,对火焰光谱特别灵敏,2个M3安装孔,可以稳定模块不会旋转。 火焰传感器的工作温度为-25摄氏度~85摄氏度,在使用过程中应注意火焰探头离火焰的距离不能太近,以免造成损坏。 模块引脚定义:1-模拟输出;2-地GND;3-电源VCC。 供电电压:5V 以下为供电电压5V时,火焰传感器实测数据,以一根蜡烛为火源,室内打开节能灯实测: 无火源时,对着节能灯:0.3V 有火源时, 20cm:4.8V 30cm:4.6V 40cm:3.9V 50cm:2.9V 60cm:2.5V 70cm:2V 80cm:1.5V 90cm:1.2V 100cm:1V






