本文主要是介绍【雕爷学编程】Arduino动手做(25)——MQ-2甲烷一氧化碳气敏式烟雾传感器模块2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来—小小的进步或是搞不定的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二十五:MQ-2气敏式烟雾传感器模块(甲烷 液化气可燃气体)酒精氢一氧化碳可燃液化传感器模块探头
MQ2气敏传感器模块电原理图
第一步:给模块供5V直流电(注意正负极别接反,否则容易烧毁芯片)。
第二步:如果选择DOUT,TTL高低电平端,输出信号可以直接接单片机IO口或者接一个NPN型三极管去驱动继电器,电位器RP在这里用于调节输出电平跳变的阀值,由下图原理图可以分析,当传感器检测到被测气体时,比较器LM393管脚2点的电压值,跟传感器检测到气体的浓度成正比,当浓度值超过电位器RP设定的阀值时,比较器2脚的点位高于3脚的点位,这个时候,比较器1脚输出低电平,LED灯亮,R3为LED灯限流电阻,C1为滤波电容。传感器输出低电平,反之,当没有信号的时候,传感器输出高电平,等于电源电压。
第三步:如果选择AOUT,模拟量输出,那样就不用管电位器了,直接将AOUT脚接AD转换的输入端或者,带有AD功能的单片机,就可以了。根据我们的经验:在正常环境中,即:没有被测气体的环境,设定传感器输出电压值为参考电压,这时,AOUT端的电压在1V左右,当传感器检测到被测气体时,电压每升高0.1V,实际被测气体的浓度增加200ppm(简单的说:1ppm=1mg/kg=1mg/L=1×10-6 常用来表示气体浓度,或者溶液浓度。),根据这个参数就可以在单片机里面将测得的模拟量电压值转换为浓度值。注意:如果您是用来做精密仪器,请购买市场上标准的校准仪器,不然存在误差,因为,输出浓度和电压关系的比值并非线性,而是趋于线性。
特别提醒:传感器通电后,需要预热20S左右,测量的数据才稳定,传感器发热属于正常现象,因为内部有电热丝,如果烫手就不正常了。
模块特色:
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 A0int 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;//指定模拟端口A0int val=0;//声明临时变量
int buzzer=4;
void setup()
{pinMode(MQ2,INPUT);Serial.begin(9600);//设置串口波特率为9600pinMode(buzzer,OUTPUT);//设置IO脚模式,OUTPUT为输出
}
void loop()
{val=analogRead(MQ2);//读取A0口的电压值并赋值到valSerial.println(val);//串口发送val值if(val>70)digitalWrite(buzzer,HIGH);//发声音elsedigitalWrite(buzzer,LOW);//关闭声音
}
收集的一些相关资料
1、可燃气体传感器(MQ系列)-救命的传感器
https://www.bilibili.com/video/av804079838/?from=search&seid=11663358107279587563&spm_id_from=333.337.0.0
2、《单片机实践项目》之MQ-3酒精检测传感器讲解(274)
https://www.bilibili.com/video/av287274155?from=search&seid=5350287723948680848&spm_id_from=333.337.0.0
3、
Arduino-MQ-2气体传感器检测演示
https://www.bilibili.com/video/av805299651/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0
4、(第三章.基础实验)实验19、MQ-2气体传感器
https://www.bilibili.com/video/av886804760/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0
5、MQ系列气体检测报警器操作演示 烟雾传感器测试 可燃气体传感器报警
https://www.bilibili.com/video/av807019421/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0
6、mq2可燃气体报警器
https://www.bilibili.com/video/av70300691/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0
这篇关于【雕爷学编程】Arduino动手做(25)——MQ-2甲烷一氧化碳气敏式烟雾传感器模块2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!