STC15F2KA60S2芯片粉尘传感器的应用
来源:互联网 发布:spin磁共振分析软件 编辑:程序博客网 时间:2024/04/29 13:38
STC15F2KA60S2芯片粉尘传感器的应用
1.粉尘有什么危害?
什么是粉尘?
总悬浮颗粒物(TSP)—环境空气中空气动力学当量直径小于等于100μm的颗粒物。
• PM10—环境空气中空气动力学当量直径小于等于10μm的颗粒物。
• PM2.5—环境空气中空气动力学当量直径小于等于2.5μm的颗粒物。
粉尘对人体的危害,根据其理化性质、进入人体的量的不同,可引起不同的病变。如呼吸性系统疾病、局部作用、中毒作用等。
职业性呼吸系统疾病有如下4种表现
1.尘肺
2.粉尘沉着症
3.有机粉尘引起的肺部病变
4.呼吸系统肿瘤
2. 目的:
随着经济的发展,大气中的污染物也随之增加了许多。现如今的雾霾天气也越来越严重,这些恶劣的天气与空气中的粉尘有着紧密的关系,当然也与其他的因素有关。为了时刻使人们能够更加直观地了解到自己所处环境中粉尘的浓度,这才引进了基于51单片机的GE粉尘传感器技术,这样才能够对大气进行全方位,实时性地采集与处理。
3.粉尘传感器工作原理
① 光散射方法
② LED发射出光线遇粉尘产生反射光
③ 接收传感器检测到反射光的光强,输出信号
④ 通过光强的大小判断粉尘的浓度。
4.传感器内部设计
• 连续光发射的IR LED
• 可见光滤波器,减少外界光线干扰
• 线性电源控制,稳压器稳定探测器的电压,减少噪声
• MICOM自动控制传感器的灵敏度,消除偏移,信噪比好
• 使用加热电阻形成自然向上气流
5.传感器输出
空气中粉尘浓度的计算方法:
一个规定的周期内所有低脉冲时间之和除以这个周期时间。
6.程序
/************************************************************/
//利用单片机P1.0测试10秒内接收到的低脉冲时长
//计算10秒内空气中平均粉尘浓度,并显示。
/************************************************************/
#include<reg51.h>
unsigned charseven_seg[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned intj,k,counter1,counter2,dat1=1,dat2;
unsigned int i;
sbit P1_0 = P1^0; //脉冲输入
bit P1_0_S;
/*******************Timer0中断服务函数**********************/
voidtimer0_isr(void) interrupt 1
{
TH0 = (65536 - 1000) / 255;
TL0 = (65536 - 1000) % 255;
i++;
if(P1_0 == 0){P1_0_S = 1;counter2++;} //检测低电平并计时
if(P1_0 == 1 && P1_0_S == 1)
{P1_0_S = 0;counter1++;} //检测脉冲个数
if(i >= 10000) //10秒到了
{
i = 0;
dat2 = counter2 * 0.1; //求10秒内平均值
counter1 = 0;
counter2 = 0;
if(dat2 <= 130)dat1 = 1; //颗粒物等级显示
else
{
if(dat2 >=250)dat1 = 3;
else dat1 = 2;
}
}
P0 = 0xff; //Proteus仿真需要消隐
switch(j)
{
case 0: P0 = seven_seg[dat2 % 100% 10];
P2 = ~0x01;break;
case 1: P0 = seven_seg[dat2 % 100/ 10];
P2 = ~0x02;break;
case 2: P0 = seven_seg[dat2 % 1000/ 100] & 0x7f;
P2 = ~0x04;break;
case 3: P0 = seven_seg[dat2 %10000 / 1000];
P2 = ~0x08;break;
case 4:
P2 = ~0x00;break;
case 5: P0 = seven_seg[dat1 % 10]; //显示颗粒物污染等级
P2 = ~0x20;break;
}
j++;
if(j >= 6)
j = 0;
}
/*********************Timer0初始化函数***********************/
voidtimer0_init(void)
{
TMOD = 0x01;
TH0 = (65536 - 1000) / 255;
TL0 = (65536 - 1000) % 255;
EA = 1;
ET0 = 1;
TR0 = 1;
}
/**************************主函数****************************/
void main(void)
{
timer0_init();
while(1);
}
- STC15F2KA60S2芯片粉尘传感器的应用
- 粉尘传感器ZPH01驱动
- GP2Y1010AU0F 粉尘传感器
- GP2Y1010AU0F 粉尘传感器
- Arduino Uno PM2.5粉尘传感器(GP2Y1010AU0F) 看看家里的空气质量
- STM32串口接收粉尘传感器数据
- PM2.5测量&PMS5003粉尘传感器使用(附程序)
- 传感器的应用
- Android的传感器应用
- 磁性传感器的应用
- Android传感器的应用
- 数字传感器:新兴的应用
- android距离传感器的应用
- 开发传感器应用的步骤
- 浅谈Android传感器的应用
- unity加速传感器的应用
- Memory芯片的应用攻略
- STC15F2K60S2芯片PWM的应用
- iOS开发中两个界面之间用Block传值
- 图解TCP-IP协议
- CentOS ffmpeg编译,出不来ffplay的原因
- nyoj-25
- Kubernetes用户指南(四)--应用检查和调试
- STC15F2KA60S2芯片粉尘传感器的应用
- mac os 升级到10.11后,Xcode问题
- ActiveX控件开发小结
- 认识JS
- 最简实例说明wait、notify、notifyAll的使用方法
- USACO 香甜的黄油
- Python多线程学习
- C++标准库头文件
- javascript条件语句