一、实物图
二、原理图
编号 | 名称 | 功能 |
1 | L-VCC | LED灯正极 |
2 | L-GND | LED灯负极 |
3 | LED | LED灯引脚 |
4 | S-GND | 模块负极 |
5 | OUT | 模拟量输出引脚 |
6 | VCC | 模块正极 |
L-VCC引脚接电阻是用来限流,接电容是用来稳压。
三、简介
GP2Y10是日本夏普公司开发的一款光学灰尘浓度检测传感器,设计用来感应空气中的尘埃粒子,其内部对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,即使非常细小的如烟草烟雾颗粒也能够被检测到,通常在空气净化系统中应用。该传感器具有非常低的电流消耗(最大20mA,典型值11mA),可使用高达7VDC。该传感器输出为模拟电压,其值与粉尘浓度成正比。可测量0.8微米以上的微小粒子,灵敏度为0.5V/(0.1mg/m3),体积小,重量轻,便于安装,广泛应用于空气清新机,换气空调,换气扇等产品。
工作原理:
模块内部采集腔中对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,尘埃浓度越高,反射光越多,从而输出模拟电压值越高,通过ADC将模拟值转化为数字电压值,利用比例关系式,最终得到尘埃浓度。
四、内部框图
五、粉尘浓度特性数据
根据曲线图可以列出部分电压与粉尘浓度的对应值,如下:
V | 0.95 | 1.45 | 2.00 | 2.65 | 3.25 | 3.60 |
Mg/m3 | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 |
根据以上对应值可以求出粉尘浓度mg/m3与电压V的计算公式,如下:
mg/m3 = 0.17 * V – 0.1
空气污染指数分级标准表:
PM2.5 浓度均值(μg/m3) |
空气质量 AQI |
空气质量级别 | 空气质量指数类别 |
0-35 | 0-50 | 一级 | 优 |
35-75 | 51-100 | 二级 | 良 |
75-115 | 101-150 | 三级 | 轻度污染 |
115-150 | 151-200 | 四级 | 中度污染 |
150-250 | 201-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浓度值。