MP-2烟雾传感器

1.传感器原理:

MP-2 烟雾检测气体传感器采用多层厚膜制造工艺,在微型 Al2O3
陶瓷基片的两面分别制作加热器和金属氧化物半导体气敏层,封装
在金属壳体内。当环境空气中有被检测气体存在时传感器电导率发
生变化,该气体的浓度越高,传感器的电导率就越高。采用简单的
电路即可将这种电导率的变化转换为与气体浓度对应的输出信号
MP-2技术手册

2.技术参数:

在这里插入图片描述

3.测试电路:

在这里插入图片描述

4.测试敏感特性曲线

在这里插入图片描述

6.思路:

根据测试电路和敏感特性曲线可以看MP-2类似于铂电阻,内部的电阻阻值会随浓度变化,串联负载电阻对地产生一个电压,而且这个电压曲线是非线性的。所以要根据这个曲线进行曲线拟合得到一个拟合公式,来计算真实的烟雾浓度。
在线曲线拟合
在这里插入图片描述把采集的的电压带入到这个多项式中得到的y就是当前的浓度。
提示:如果想提高精度,输入的参数越多拟合的越准

6.验证

  1. 原理图
    在这里插入图片描述
    2.代码
void adc1_thread_main(void *parameter)
{
    while(1)
    {
        /* 滤波5次 */
        for(rt_uint8_t i = 0;i < 5;i++)
        {
            adc_read();
            h2s_vol += h2s_a;
            yw_vol += yw_b;
            co_vol += co_c;
            o2_vol += o2_d;
            rt_thread_mdelay(100);
        }
        /* 换算 */
        h2s_vol = h2s_vol / 5;
        yw_vol = yw_vol / 5;
        co_vol = co_vol / 5;
        o2_vol = o2_vol / 5;

        /* 计算浓度 */
        yw_ppm_count(yw_vol);
        oc_ppm_count(co_vol);
        h2s_ppm_count(h2s_vol);
        o2_ppm_count(o2_vol);
        rt_kprintf("********换行*******\n");
        h2s_vol = yw_vol = co_vol = o2_vol = 0;
        rt_thread_mdelay(500);
    }
}
/* 烟雾浓度换算 */
static rt_uint16_t  yw_ppm_count(double x)
{
    double a =0 ,b = 0,c = 0,d = 0;
    double ax =0 ,bx = 0,cx = 0,dx = 0;
    double y;
    a = x * x * x * x * x;
    b = x * x * x * x;
    c = x * x * x;
    d = x * x ;
    ax = 0.0001923 * a;
    bx = 0.006017 * b;
    cx = 0.07267 * c;
    dx = 0.425 * d;
    y = ax - bx + cx - dx + (1.267 * x) + 1.209;
    y = y * 1000;
    rt_kprintf("yw_y = %dppm\n",(int)y);
    return (rt_uint16_t)y;
}

3.打印结果
在这里插入图片描述

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值