MQ-2烟雾检测传感器
MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~3000摄氏度时,二氧化锡表面吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至面变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息。烟雾浓度越大导电率越大,输出电阻越低,则输出的模拟信号就越大。
模块来源
规格参数
工作电压:5V
工作电流:150MA
输出方式: DO接口为数字量输出 AO接口为模拟量输出
读取方式:ADC
管脚数量:4 Pin(2.54mm间距排针)
硬件连接
MQ-2烟雾传感器对液化气、天然气、城市煤气灵敏度较高。需要注意的是:在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。其检测可燃气体与烟雾的范围是100~10000ppm(ppm为体积浓度。 1ppm=1立方厘米/1立方米)。带有双路信号输出(模拟量输出AO和数字量输出DO)。当气体浓度未超过设定阈值时,数字接口DO口输出低电平,模拟接口AO电压基本为0v左右;当气体影响超过设定阈值时,模块数字接口DO输出高电平,模拟接口AO输出的电压会随着气体的影响慢慢增大。阈值由模块上的可调电阻控制。
其对应的原理图见下图,AO输出为MQ-2传感器直接输出的电压,所以为模拟量;DO为经过LM393进行电压比较后,输出高低电平,所以为数字量。具体原理见光敏电阻光照传感器章节的硬件连接。
因此DO引脚可以配置为GPIO的输入模式,AO引脚需要配置为ADC模拟输入模式。
- 传感器的Vcc端接开发板的5V供电;
- GND端接开发板的GND;
- AO(模拟信号输出端)接开发板的A0模拟输入引脚;
- DO(数字信号输出端)接开发板的8号引脚;
使用方法
c
/******************************************************************************
* 测试硬件:ColorEasyDuino开发板
* 版 本 号: V1.0
* 修改作者: www.lckfb.com
* 修改日期: 2024年04月08日
* 功能介绍:
*****************************************************************************
* 开发板软硬件资料与相关项目软硬件资料官网全部开源
* 开发板官网:www.lckfb.com
* 技术支持常驻论坛,任何技术问题欢迎随时交流学习
* 立创论坛:club.szlcsc.com
* 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
* 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
int MQ2_AO_Pin = A0; // 定义烟雾电阻传感器的AO连接到开发板的A0引脚
int MQ2_DO_Pin = 8; // 定义烟雾传感器的DO连接到开发板的8号引脚
int MQ2Value = 0; // 用于存储烟雾浓度值的变量
#define ADC_MAX_VALUE 1023 //ADC的最大采集值
void setup() {
Serial.begin(9600); // 开始串行通讯,设置波特率为9600
pinMode(MQ2_DO_Pin, INPUT_PULLUP);
}
void loop() {
// 读取按钮的状态
int MQ2State = digitalRead(MQ2_DO_Pin);
if (MQ2State == LOW) {
Serial.println("检测到高浓度烟雾");
} else {
Serial.println("检测到低浓度烟雾");
}
MQ2Value = analogRead(MQ2_AO_Pin); // 读取A0引脚的电压值
Serial.print("烟雾浓度: ");
Serial.println( MQ2Value); // 将读取的值发送到电脑的串行监视器
delay(1000); // 延时1秒
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39