MQ2气体传感器Arduino怎么接?烟雾燃气检测串口读数避坑

电机传感器师硬件DIY 2026-10-14 23:10:03 18阅读 举报

给厨房做烟雾报警、给小车做燃气检测、给房间做一个能发现异味的传感器,MQ-2是很多人入门气体检测的第一颗模块。它的核心是一个加热式半导体气敏元件,对丙烷、丁烷、液化气、甲烷以及烟雾等可燃气体和烟雾敏感,检测范围大概在300ppm到10000ppm之间。接线简单,但用的时候有几个点容易踩坑,这篇把从接线到读数的实操讲清楚。

四个脚,分清数字和模拟输出

MQ-2模块上一般是四根脚:VCC接5V、GND接地、DO是数字输出脚、AO是模拟输出脚。DO输出一个比较开关量:检测到气体浓度超过板上电位器设定的阈值时输出低电平,平时输出高电平,适合接数字脚直接判断“有没有”。AO输出的是与浓度成正比的模拟电压,接模拟脚读更细腻的浓度变化。

接到Arduino上,通常把AO接A0读模拟值、DO可以接数字脚也行或者干脆不接。核心是供电用5V,因为加热元件需要稳定供电才能让传感器工作正常。

读模拟值,做阈值判断

用analogRead(A0)就能读到0到1023之间的数值。浓度越高,AO输出的电压越高,读到的模拟值越大。但要注意,这个值不是线性的ppm浓度,不同厂家、不同批次、不同温度下读出来的基准都不一样,所以最实用的做法不是算浓度,而是先记录环境正常时的基准值,再设一个比基准高的阈值作为报警线。

板上那颗蓝色小电位器就是调DO动作点(灵敏度)的。边看着读数边慢慢拧,拧到平时不触发、一有气味就触发的位置就好。第一次用如果不知道怎么调,通常出厂偏灵敏,可以先稍微往不敏感方向转一点再试。

三个高频坑,提前绕开

第一是预热时间。MQ-2内部有加热丝,刚上电时内部温度和基线都不稳,往往需要几十秒到几分钟预热,这期间读数会一直漂。写程序时别一上电就立刻判读,可以在上电后延时几十秒再开始正常读取,或者做一个自动跟随基线的校准逻辑。

第二是数值漂移和环境依赖。温度、湿度、气压变了读数也会跟着变,同一个浓度的气体在不同天气下读出来的数不一样。所以千万别把阈值写死成固定数字,尽量做开机自动校准采基准,再叠加固定偏移当阈值,这样在不同环境都相对可靠。

第三是区分气体和浓度范围。MQ-2对可燃气体和烟雾敏感,但它选择性一般,别的挥发性气体也可能触发它。它适合做“有没有可燃气体/烟雾超标”这种定性或粗定量检测,不适合当高精度气体分析仪。把供电、预热、自动校准阈值三件事捋顺,MQ-2就能稳定帮你守住烟雾和异味这道防线。

版权声明:
作者:电机传感器师
链接:https://www.aiddithome.com/p/2c725a08036b1.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
5条评论
阿伟不emo
1楼 · 2天前

MQ2这块我装厨房好久了,预热那点确实烦,现在都是上电先等一会再判断,稳多了

深圳打工人Alan
2楼 · 2天前

原来AO是模拟输出,我一开始只接DO怪不得只能判断有没有

只看不说话
3楼 · 2天前

自动校准阈值这个思路好,我原来写死数字天气一变就乱报警

线比代码多
4楼 · 2天前

灵敏度电位器我拧了半天才知道管DO阈值的,谢谢楼主讲明白

修啥都行二哥
5楼 · 2天前

1500ppm以下是可燃气体那个大概范围是吧,学习了