vivilyly 发表于 2023-3-31 18:00

MQ7与电压值与PMM的转换

#define CAL_PPM10// 校准环境中PPM值
#define RL        10// RL阻值
static float R0 = 8.00;

//得到ADC采样内部传感器的值
//取10次,然后平均
vu16 Get_ADCValue_MQ7(void)
{
        u32 val = 0;
        u8 times = 10;
        u8 count;
        for(count = 0; count < times; count++)
        {
                val += ADC_ConvertedValue;
                delay_ms(5);
        }
        return val/times;
}

// 传感器校准函数
void MQ7_PPM_Calibration(float RS)
{
       
    R0 = RS / pow(CAL_PPM / 98.322, 1 / -1.458f);
}

// 获取传感器的值
float MQ7_GetPPM(void)
{
    float Vrl = 3.3f * Get_ADCValue_MQ7() / 4096.f;
        Vrl = ( (float)( (int)( (Vrl+0.005)*100 ) ) )/100;
    float RS = (3.3f - Vrl) / Vrl * RL;
//        printf("MQ7_VRL = %.2f\n", Vrl);
    if(times_mq < 6000) // 获取系统执行时间,3s前进行校准
    {
                MQ7_PPM_Calibration(RS);
    }
       
    float ppm = 98.322f * pow(RS/R0, -1.458f);

    returnppm;
}



primojones 发表于 2023-5-10 20:12

MQ-7是一种可检测一氧化碳(CO)浓度的气敏传感器,它的输出信号是电压值。

mollylawrence 发表于 2023-5-10 21:05

可以使用公式:

CO浓度 = (输出电压值 - 零点电压) / 灵敏度

minzisc 发表于 2023-5-10 21:17

MQ系列的气体传感器的输出电压应该如何处理?

tpgf 发表于 2023-5-11 12:02

既然MQ7输出信号是电压值,那么是不是意味着它不能远离单片机啊

nawu 发表于 2023-5-11 12:18

tpgf 发表于 2023-5-11 12:02
既然MQ7输出信号是电压值,那么是不是意味着它不能远离单片机啊

楼上的意思是不是说如果距离远了电压会产生衰减啊

zljiu 发表于 2023-5-11 14:46

就是依据电压的大小按照比例转化为pwm的占空比或者频率进行输出是吗

tfqi 发表于 2023-5-11 15:00

比例关系可以自己根据需求随意设置是吧

磨砂 发表于 2023-5-11 15:17

这种会不会受到外界的干扰比较厉害呢

sheflynn 发表于 2023-5-11 17:16

电压和浓度是怎么对应的,有公式吗?

dspmana 发表于 2023-5-11 21:09

MQ-7经过AD转换后得出电压值,怎么计算成浓度值

wilhelmina2 发表于 2023-5-11 22:17

MQ-7的输出电压值与CO浓度存在非线性关系,因此需要通过实验获得MQ-7的输出电压值与CO浓度之间的对应关系,并建立转换函数

nomomy 发表于 2023-5-18 11:09

mq135传感器 电压和浓度的转化关系怎么计算

pmp 发表于 2023-5-21 14:32

mq135传感器 电压和浓度的转化关系怎么计算
页: [1]
查看完整版本: MQ7与电压值与PMM的转换