打印
[开发工具]

MQ2电压值与PMM的转换

[复制链接]
1014|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vivilyly|  楼主 | 2023-3-30 22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define CAL_PPM         20          // 校准环境中PPM值
#define RL                        5                // RL阻值
static float R0 = 6.00;         // 元件在洁净空气中的阻值

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

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

// MQ2传感器数据处理
float MQ2_GetPPM(void)
{       
    float Vrl = 3.3f * Get_ADCValue_MQ2() / 4096.f;
        Vrl = ( (float)( (int)( (Vrl+0.005)*100 ) ) )/100;
    float RS = (3.3f - Vrl) / Vrl * RL;

        if(times_mq < 6000) // 获取系统执行时间,300ms前进行校准
    {
                R0 = RS / pow(CAL_PPM / 613.9f, 1 / -2.074f);
    }
       
    float ppm = 613.9f * pow(RS/R0, -2.074f);
       
    return  ppm;
}


使用特权

评论回复
沙发
童雨竹| | 2024-5-16 08:10 | 只看该作者

只要内存占用量不超过 256.0 就可以用 small 模式编译

使用特权

评论回复
板凳
Wordsworth| | 2024-5-16 09:13 | 只看该作者

专门的滤波器来阻止交流噪声进入周围的电路

使用特权

评论回复
地板
Clyde011| | 2024-5-16 10:16 | 只看该作者

电流型变换器电流检测电阻的公共接点和输出端电阻分压器的下端

使用特权

评论回复
5
公羊子丹| | 2024-5-16 11:09 | 只看该作者

超过变量128后必须使用compact模式编译

使用特权

评论回复
6
万图| | 2024-5-16 12:12 | 只看该作者

引线长度就决定了其响应信号的波长

使用特权

评论回复
7
Uriah| | 2024-5-16 13:15 | 只看该作者

数字电压表(DVM)或仪器来测量效率

使用特权

评论回复
8
帛灿灿| | 2024-5-16 15:11 | 只看该作者

任何一条PCB引线都可能成为天线

使用特权

评论回复
9
Bblythe| | 2024-5-16 16:14 | 只看该作者

滤波电容、功率开关管或整流器、电感或变压器

使用特权

评论回复
10
周半梅| | 2024-5-16 18:10 | 只看该作者

128以上的某些地址为特殊寄存器使用,不能给程序用

使用特权

评论回复
11
Pulitzer| | 2024-5-16 19:13 | 只看该作者

交流能量就会从输入或输出滤波电容上流进流出

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

1697

帖子

1

粉丝