厨房燃气泄漏、酒精蒸汽、家里烟雾浓度,想用单片机盯住这些,MQ-2是第一块会想到的气体传感器。它便宜、耐操、教程多,能同时输出模拟量和数字量开关,非常适合做烟雾报警和气体浓度检测的入门件。这篇文章把原理、接线、读数和校准坑讲清楚。
MQ-2是什么,认准四根引脚
MQ-2内部是一颗加热型的半导体气敏元件,检测对象主要是可燃气体和烟雾,包括丙烷、丁烷、液化气、酒精烟雾等。它需要加热才能工作,所以模块上通常能看到一个发热的加热丝区,工作时摸起来是温的,这是正常的。
模块一般引出四根脚:VCC(供电)、GND(地)、DO(数字量输出)、AO(模拟量输出)。DO输出的是经过板载比较器处理的开关信号,没超阈值输出高电平,超了就翻低;AO输出的是随浓度变化的模拟电压,接Arduino的模拟口读数最灵活。引脚图见下。

接线表:AO接模拟口读数最方便
MQ-2接到Arduino Uno的标准接法如下:VCC接5V、GND接GND、AO接A0(模拟输入)、DO接D2(可选,做开关报警)。这样既能用A0读到连续的浓度值,又能用D2做简单的阈值触发。
需要注意,MQ-2加热后读数需要预热,刚上电的前30秒到1分钟,浓度值会先飙高再慢慢回落到环境本底,这是半导体气敏元件特有的“预热期”,不是坏了。接线图见图。

读数据:模拟量怎么换算
用analogRead(A0)拿到的原始值范围是0到1023,对应0到5V(如果供电是5V)。想转成电压就乘5再除1023。真正转浓度ppm比较麻烦,需要查MQ-2的datasheet特性曲线去拟合,对大多数报警用途,更实用的是“标定一个阈值”——先测当前环境的稳定本底值,留出余量,超过设定值就触发报警,这样最省心也最稳。
报警乱响或读数不准?几个高频排查点
最常见的坑是没预热就读数,或者把AO/DO接反。再一个就是调节电位器——模块上那颗可调电阻控制DO的触发阈值,想灵敏度高就逆时针拧。还有供电要稳定,电机这类大电流负载别和模块抢一路5V,纹波大会让读数飘。
把阈值和告警写好后,就能做厨房燃气报警、桌面烟雾检测、排烟风扇自动控制这些实用的项目。MQ-2是理解气体传感、模拟量与阈值判断很好的一课,四根线接对,浓度就到手。







想省事就标定一个环境本底阈值,比硬解ppm省心
做厨房燃气报警够用了,四根线认清楚很简单
刚上电先预热半分钟再读,不然浓度虚高吓人
调模块那颗电位器能控触发灵敏度,测试很好用
AO接A0、DO接D2这接法准,反过来读数就乱了