• 【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浓度值。

  • 相关阅读:
    好用的截图软件Snipaste2.7.3
    std::initializer_list详解
    Java IO流详解
    FPGA-结合协议时序实现UART收发器(二):串口发送模块实现uart_tx
    设计模式-10-观察者模式
    Excel新手教程
    Vue生命周期全解析:从工厂岗位到任务执行,一览无遗!
    3W字,Docker 从入门到精通
    Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
    【小程序-开篇】国内IT技术圈的技能树貌似点歪了?
  • 原文地址:https://blog.csdn.net/weixin_61121477/article/details/127745913