找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1788|回复: 5
打印 上一主题 下一主题
收起左侧

关于单片机MQ2烟雾传感器C语言代码的理解

[复制链接]
回帖奖励 9 黑币 回复本帖可获得 3 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:1020164 发表于 2022-5-24 00:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
unsigned int Get_ADCValue_MQ2(u8 times)//得到ADC采样内部传感器的值  取n次,然后平均
{
  u32 val = 0;
  u8 count;
  for(count = 0; count < times; count++)
  {
    val += analogRead(MQ2_IO);//获取模拟量数值
    delay(5);
  }
  return val/times;
}
void MQ2_PPM_Calibration(float RS)// 传感器校准函数
{
    R0 = RS / pow(CAL_PPM / 613.9f, 1 / -2.074f);
}
float MQ2_GetPPM(void)// MQ2传感器数据处理
{
    float Vrl = 5.0f * Get_ADCValue_MQ2(10) / 1024.f;
    Vrl = ( (float)( (int)( (Vrl+0.005)*100 ) ) )/100;
    float RS = (5.0f - Vrl) / Vrl * RL;
    if(millis() < 5000) // 获取系统执行时间,10s前都进行校准
    {
        R0 = RS / pow(CAL_PPM / 613.9f, 1 / -2.074f);
    }
    float ppm = 613.9f * pow(RS/R0, -2.074f);   //根据转化公式
    return  ppm;
请问标红代码的公式和“POW”、“613.9f”、什么意思

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:844772 发表于 2022-5-24 09:03 | 只看该作者
1.POW(x,y),是做x的y次方;2.MQ2对不同浓度的可燃气,存在不同的曲线,这个曲线不是单纯线性而是指数函数,可以做实验后用spss算出你问的参数,具体你用的公式是检测LPG浓度的。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:1020164 发表于 2022-5-26 09:48 | 只看该作者
glinfei 发表于 2022-5-24 09:03
1.POW(x,y),是做x的y次方;2.MQ2对不同浓度的可燃气,存在不同的曲线,这个曲线不是单纯线性而是指数函 ...

那VAL是什么参数
回复

使用道具 举报

地板
ID:740423 发表于 2022-6-9 10:30 | 只看该作者

VAL即value,指的是你获取到的参数(or数值),看程序的意思是取模拟量参数求均值(主要用来滤波,或者剔除不准确的数字)
回复

使用道具 举报

5#
ID:1018878 发表于 2022-6-9 16:27 | 只看该作者
POW(x,y),是做x的y次方
回复

使用道具 举报

6#
ID:1033545 发表于 2022-6-9 16:43 | 只看该作者
POW要包含一个math的头文件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表