单片机
返回首页

STC15F2KA60S2芯片粉尘传感器的应用

2022-08-16 来源:csdn

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


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);


}


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 短波AM发射器电路设计图

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章