• 【mcuclub】PM2.5粉尘浓度检测模块GP2Y10


    一、实物图

     

    二、原理图

    编号名称功能
    1L-VCCLED灯正极
    2L-GNDLED灯负极
    3LEDLED灯引脚
    4S-GND模块负极
    5OUT模拟量输出引脚
    6VCC模块正极

    L-VCC引脚接电阻是用来限流,接电容是用来稳压。

    三、简介

    GP2Y10是日本夏普公司开发的一款光学灰尘浓度检测传感器,设计用来感应空气中的尘埃粒子,其内部对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,即使非常细小的如烟草烟雾颗粒也能够被检测到,通常在空气净化系统中应用。该传感器具有非常低的电流消耗(最大20mA,典型值11mA),可使用高达7VDC。该传感器输出为模拟电压,其值与粉尘浓度成正比。可测量0.8微米以上的微小粒子,灵敏度为0.5V/(0.1mg/m3),体积小,重量轻,便于安装,广泛应用于空气清新机,换气空调,换气扇等产品。

    工作原理:

    模块内部采集腔中对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,尘埃浓度越高,反射光越多,从而输出模拟电压值越高,通过ADC将模拟值转化为数字电压值,利用比例关系式,最终得到尘埃浓度。

    四、内部框图

    五、粉尘浓度特性数据

    根据曲线图可以列出部分电压与粉尘浓度的对应值,如下:

    V0.951.452.002.653.253.60
    Mg/m300.10.20.30.40.5

    根据以上对应值可以求出粉尘浓度mg/m3与电压V的计算公式,如下:

    mg/m3 = 0.17 * V - 0.1

    空气污染指数分级标准表:

    PM2.5
    浓度均值(μg/m3)
    空气质量
    AQI
    空气质量级别空气质量指数类别
    0-350-50一级
    35-7551-100二级
    75-115101-150三级轻度污染
    115-150151-200四级中度污染
    150-250201-300五级重度污染
    250以上≥300六级严重污染

    六、时序解析

    根据传感器数据手册介绍,传感器的采集周期为10ms,LED灯亮时间为0.32ms,传感器采集时间为0.28ms。

    代码如下:

    /****

    *******获取PM2.5值函数

    *******传入值:adc通道

    *******返回值:PM2.5值

    *******注意:本函数需要调用adc获取函数

    *****/

    uint Pm25_Get_Value(uchar ch)

    {

       static uint adc_value = 0;       //adc值变量

       static uint PM_count = 0;        //计数次数值变量

       static uint PM25_value = 0;      //PM2.5值变量

       PM25_LED = 0;                   //PM2.5 LED灯拉低开启

       PM25_Delay(28);                 //延时280us

       adc_value += Adc0832_Get_Value(ch); //获取一次adc值,并累加

       PM25_Delay(4);                  //延时40us

       PM25_LED = 1;                   //PM2.5 LED灯拉高关闭

       if(++PM_count >= 5)              //获取5次adc值

       {

          PM_count = 0;                 //计数次数清零

          adc_value = adc_value / 5;    //取5次平均值

          PM25_value = ((adc_value/255.0)*5*0.17-0.1)*1000;     //计算PM2.5值

          adc_value = 0;                //adc值清零

       }

       return PM25_value;              //返回PM2.5值

    }

    七、流程设计

    首先初始化引脚,然后将LED灯引脚拉低开启,延时280us后,获取一次ADC值并累加,再延时40us,LED灯引脚拉高关闭,此为接收一次数据完成,当接收5次数据后,计算ADC平均值,通过公式计算出PM2.5浓度值,最后返回PM2.5浓度值。

  • 相关阅读:
    JMeter参数化4种实现方式
    常见布局效果实现方案
    基于react的瀑布流组件
    小白快速自建博客--halo博客
    初学Java,遇错就懵,这类问题到底怎么处理呢?!
    mapstruct常见错误及解决方案
    Ubuntu系统中tree的用法
    【极术读书】赠卡活动第二期,免费领极客时间月卡系统学习技术管理
    获取真实IP总结
    数据结构 - 链表详解一 - 链表的介绍
  • 原文地址:https://blog.csdn.net/weixin_61121477/article/details/127745913