「雕爷学编程」Arduino动手做(25)——MQ2气敏检测模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验二十五:MQ-2气敏式烟雾传感器模块(甲烷 液化气可燃气体)
MQ-2气体传感器探头所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。
MQ-2气敏元件的结构和外形如图所示(结构 A or B), 由微型AL2O3陶瓷管、SnO2 敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流。
工作原理:
MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。
应用领域
MQ-2型传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感,具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息。可用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此,MQ-2可以准确来说是一个多种气体探测器。MQ-2的探测范围极其的广泛。它的优点:灵敏度高、响应快、稳定性好、寿命长、驱动电路简单和性价比高。
MQ-2的特性及要点:
1.广泛的探测范围(适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的探测)
2.具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息(经过测试:对烷类的感应度比纸张木材燃烧产生的烟雾要好的多,输出的电压升高的比较快)
3.其检测可燃气体与烟雾的范围是100~10000ppm (ppm为体积浓度, 1ppm=1立方厘米/1立方米)
4.MQ-2型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。
5.高灵敏度(Rin air/Rin typical gas≥5 )
6.快速响应恢复(≤30s )
7.合理的工作环境(环境温度:-20℃~+55℃ )
8.寿命长(90%的产品几十年不要更换探测头)
9.电路设计电压范围宽,24V以下均可,加热电压5±0.2V(加热电压要在合适范围之内,如果过高,会导致内部的信号线熔断,从而器件报废)
10.需要注意的是:在使用之前必须加热一段时间(30s左右),否则其输出的电阻和电压不准确。
探测浓度范围(供参考):
液化气和丙烷:100ppm-10000ppm
丁烷:300ppm-5000ppm
甲烷:5000ppm-20000ppm (0.5%-2%)
氢气:300ppm-5000ppm
酒精:100ppm-2000ppm
MQ-2型传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感。
MQ-2的基础计算
用MQ-2烟雾传感器来检测火灾烟雾的最好办法是通过其输出电压与门限电压比较得出。(门限电压需要经过烟雾测试)
计算公式
阻值R与空气中被测气体的浓度C的计算关系式
log R = mlog C + n (m,n均为常数)
常数n:与气体检测灵敏度有关,除了随传感器材料和气体种类不同而变化外,还会由于测量温度和激活剂的不同而发生大幅度的变化。
常数m:表示随气体浓度而变数的传感器的灵敏度(也称作为气体分离率)。对于可燃性气体来说,m的值多数介于1/2至1/3之间。
传感器的输出电压
根据MQ-2的工作原理(其电导率随着气体浓度的增大而增大,其电阻是电导率的倒数,所以电阻是随之减小的。其特性就相当于一个滑动变阻器)。
几个应用电路
MQ-2气敏式烟雾传感器模块
模块特色:
1、采用优质双面板设计,具有电源指示和TTL信号输出指示;
2、具有DO开关信号(TTL)输出和AO模拟信号输出;
3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机或继电器模块)
4、模拟量输出电压随浓度越高电压越高。
5、对液化气,天然气,城市煤气,烟雾有较好的灵敏度。
6、有四个螺丝孔便于定位;
7、产品外形尺寸:32(L)*20(W)*22(H)
8、具有长期的使用寿命和可靠的稳定性
9、快速的响应恢复特性
电气性能:
输入电压:DC5V 功耗(电流):150mA
DO输出:TTL数字量0和1(0.1和5V)
AO输出:0.1-0.3V(相对无污染),最高浓度电压4V左右
特别提醒:传感器通电后,需要预热20S左右,测量的数据才稳定,传感器发热属于正常现象,因为内部有电热丝,如果烫手就不正常了。
接线方式:
1、VCC:接电源正极(5V)
2、GND:接电源负极
3、DO:TTL开关信号输出
4、AO:模拟信号输出
仿真示意图
/* 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真) 实验二十五:MQ-2气敏式烟雾传感器模块(甲烷 液化气可燃气体) */ #define Aout A0 //MQ-2 AO 接 Arduino Uno A0 int temp = 0; //临时变量,存储A0读取的数据 void setup() { // put your setup code here, to run once: Serial.begin(9600);//定义波特率 pinMode(Aout, INPUT);//定义A0为INPUT模式 } void loop() { // put your main code here, to run repeatedly: temp = analogRead(Aout); //读取A0的模拟数据 Serial.println(temp); //串口输出temp的数据 delay(500); //延时500毫秒 }
实验示意图
用打火机的丁烷气体做测试
第一次实验的串口数据
第二次实验的检测数据
实验的波形图,检测到丁烷气体挺敏感
/* 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真) 实验二十五:MQ-2气敏式烟雾传感器模块(甲烷 液化气可燃气体) 项目:声音烟雾报警器 蜂鸣器 buzzer=D4 */ int MQ2=A0;//指定模拟端口A0 int val=0;//声明临时变量 int buzzer=4; void setup() { pinMode(MQ2,INPUT); Serial.begin(9600);//设置串口波特率为9600 pinMode(buzzer,OUTPUT);//设置IO脚模式,OUTPUT为输出 } void loop() { val=analogRead(MQ2);//读取A0口的电压值并赋值到val Serial.println(val);//串口发送val值 if(val>70) digitalWrite(buzzer,HIGH);//发声音 else digitalWrite(buzzer,LOW);//关闭声音 }