关于MQ2烟雾模块换算出的ppm太小的解决办法
试了许多博主的电压转换为ppm公式,发现测出来一般为1-20ppm,与数据手册对不上(探测100-20000ppm),从而推荐一个解决办法。
尝试把代码中的float ppm=pow(11.5428*R0/RS,0.6549f);换成float ppm = pow(21.72*R0/RS, 2.1101f);
(代码采用的是博主辰哥单片机的,见参考文献)

一般来说,MQ-2模块能测到的气体浓度应该在100ppm-20000ppm区间内,在试了几个博主的气体浓度转化公式后发现ppm很小(<20ppm),重新梳理后发现是在matlab提取曲线那里存在计算错误。

笔者这里选择了丙烷(propane)进行了重新提取曲线

ppm=[200 500 800 1000 1562 2000 3000 5000 10000];
Rs/R0=[1.74 1.22 0.90 0.80 0.63 0.60 0.50 0.38 0.27];

左侧得到General model Power1:
f(x) = a*x^b
Coefficients (with 95% confidence bounds):
a = 21.72 (17.26, 26.18)
b = -0.4739 (-0.5066, -0.4413)
根据Rs/R0=a*(ppm)^b,得到
Rs/R0=21.72×(ppm)^(-0.4739)
也即
ppm=(21.72×R0/RS)^(2.1101)
做下对比
用公式 ppm=pow(11.5428*R0/RS,0.6549f),烟雾在正常环境为3.5ppm。

用ppm=pow(21.72*R0/RS,2.1101f),烟雾在正常环境为220ppm。

初始值符合100ppm-10000ppm(液化气),达到目标。(后续拿烟熏值也是正常的,可以到达10000ppm,一手点烟一手拍照不好拍QAQ)
------------------------------------------------2025-2-20-------更新拍照-----------------------------------------------

拿蚊香熏后ppm值达到10000左右

-------------------------------------------2025-3-8-------------更新源码------------------------------------------
通过网盘分享的文件:MQ-2.zip
链接: https://pan.baidu.com/s/1-Phr3yhcTWPWXy1KnaQLLw?pwd=t7yv 提取码: t7yv
--来自百度网盘超级会员v5的分享

下进去是这样的,有问题的xd可以试试,QAQ,文香点了下可以升到4500

有错误的话希望兄弟们多谅解,希望能帮到有同样问题的兄弟!QWQ
参考文献
a,博客文章:MQ-2烟雾传感器的电压与浓度转换_mq2-CSDN博客
更多推荐



所有评论(0)