PM2.5空气质量检测仪的设计与制作_第1页
PM2.5空气质量检测仪的设计与制作_第2页
PM2.5空气质量检测仪的设计与制作_第3页
PM2.5空气质量检测仪的设计与制作_第4页
PM2.5空气质量检测仪的设计与制作_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)任务书(2015届)题目:题目:PM2.5空气检测仪的设计与制作专业名称:应用电子技术 姓名: 学号: 班级:应用电子技术 指导教师: 2014年09月22日目录一绪论 11.1前言 11.2选题背景 11.3国内外发展状态 21.3.1粉尘测量方法 ②复位电路工作原理上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作(2)晶振电路的设计晶振电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,如图4.4Y1、C1、C2。可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择30pF左右的瓷片电容。晶振电路如图3-3所示。晶振电路如图3-3所示。3.2信号采集电路图3-4信号采集电路GP2Y1010AUOF粉尘传感器的结构特征如下3-5图所示。图3-5GP2Y1010AUOF粉尘传感器的结构P2Y1010AUOF粉尘传感器是用光学方法测量悬浮于气相介质或者液相介质中的微小微粒特性的传感器装置,具有光测技术非接触式测量、不扰动被测对象等特点。GP2Y1010AUOF粉尘传感器可以感知烟草产生的烟气和花粉,房屋粉尘等1微米以上的微小粒子.体积小,重量轻,便于安装.5V的输入电路,便于信号处理.内藏气流发生器,可以自行吸引外部大气.灰尘传感器保养简单,可以长期保持传感器的特性.3.3LED1602液晶显示设计电路图3-6液晶显示电路设计LCD1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单。在单片机系统中应用液晶显示器作为输出器件有以下几个优点:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。3.4声光报警提示电路及LED灯电路图3-7声光报警提示电路3.4.1换风机电路如图3-8所示。图3-8换风机电路3.4.2LED灯显示电路如图3-9所示。当电路通电时,DI灯会亮,发出绿光,代表粉尘传感器正在工作。当测量值少于报警值是D2灯会亮,发出黄光,代表当前空气质量良好。图3-9LED灯电路LED的特点非常明显,寿命长、光效高、辐射低与功耗低。作为目前全球最受瞩目的新一代光源,LED因其高亮度、低热量、长寿命、无毒、可回收再利用等优点,被称为是21世纪最有发展前景的绿色照明光源。本设计利用不同颜色的LED指示不同的测量信号。3.4.2蜂鸣器驱动电路:一般都包含以下几个部分:一个三极管、一个蜂鸣器、一个限流电阻。蜂鸣器为发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式(直流/方波)等。这些都可以根据需要来选择。本设计采用有源蜂鸣器。三极管Q1起开关作用,其基极的低电平使三极管饱和导通,使蜂鸣器发声;而基极高电平则使三极管关闭,蜂鸣器停止发声。3.5换风系统电路主要原理是:用风机将空气抽入机器,通过内置的滤网过滤空气,主要能够起到过滤粉尘、异味、有毒气体和杀灭部分细菌的作用。3.6按键电路本设计采用按键接低的方式来读取按键,单片机初始时,因为为高电平,当按键按下的时候,会给单片机一个低电平,单片机对信号进行处理单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O口上只接一个按键,按键的另一端接电源或接地,这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。3.6.1按键硬件电路如下图3-10所示:图3-10按键硬件电路四PM2.5粉尘测试仪系统软件设计4.1系统程序流程如4-1图所示。图4-1系统程序流程4.2浓度参考值的键盘设定程序设计因为不同环境中粉尘浓度不同,粉尘流动量也不一样,人在不同环境中工作所承受的最大粉尘量也不一样,所以在更换环境时要设置不同的粉尘浓度参考值(该环境中能接受粉尘浓度最大值),当浓度超过所设定值时,粉尘检测仪报警,我们根据报警就可以采取相应措施或使人员撤离工作现场或动力降低粉尘浓度。本模块利用独立按键方式通过三个独立按键累加输入参考值,通过单片机比较采集的数据与参考值来控制蜂鸣器是否报警。同时可以通过独立按键来进行参考值和当前浓度值的显示切换。4.2.1键盘扫描的设计在单片机应用系统中,扫描键盘只是CPU的工作任务之一。在实际应用中要想做到既能及时响应键操作,又不过多的占用CPU的工作时间,就要根据应用系统中的CPU的忙闲情况,选择好键盘的工作方式,本次设计主要是设计的小型系统CPU工作比较空闲,所以用编程扫描方式。键盘扫描程序的功能(a)判别键盘上有无键按下。其方法为扫描键盘接入口,若全为“1”,则键盘无键按下,若不全为“1”,则有键按下。(b)去除键的抖动影响。其方法为判断到有键按下后,软件延时一段时间(一般为10ms左右)后,再判断键盘状态,如果仍为按下状态,则认为有一个确定的键按下,否则按键抖动处理。当键盘释放时,判断到有键释放也软件延时一段时间,如果仍为键释放状态,则认为键确实释放了。(c)求按键位置,对各键进行逐个扫描,最后却定按下的键号。键盘扫描程序流程图如4-2图所示。图4-2键盘扫描程序流程4.3信号采集部分的程序设计因为粉尘浓度是连续变化的模拟信号,通过粉尘采集器可以将环境中的粉尘浓度转换为模拟电信号,然后通过信号放大器将转换来的电信号放大成0~5V的电压信号。4.3.1数据采集流程图设计粉尘数据采集模块流程图如图4-3所示。图4-3粉尘数据采集模块流程4.4蜂鸣器报警部分程序设计该部分是当采集到的环境中的粉尘浓度大于参考值时,单片机就会驱动蜂鸣器报警,然后采取相应措施降低粉尘浓度或者使人员撤离工作现场。该蜂鸣器是通过P3^3口与单片机相连。图4-4报警电路流程设计4.5LED1602液晶显示部分的程序设计对于人机交互式单片机系统来说,不仅需要响应用户输入,同时也需要将一些测控信息输出显示。这些显示信息可以提供实时的数据或图形结果,以便于掌握系统的状态并进行分析处理。目前,在单片机中最常用的是LED1602液晶显示屏。其成本低廉、使用简便,可以显示数字或几个特定的字符。4.5.1显示流程图设计LED1602液晶显示流程图如下图4-5所示。图4-5LED1602液晶显示流程五PM2.5粉尘检测仪的测试结果及结论5.1调试调试过程中首先要检测的就是硬件电路的设计原理是否正确、能否达到预期效果以及实现方法是否简便等等;其次在焊接好难有线电路之后,认真检查电路的焊接情况。这次采用的是分块调试的方法,PM2.5粉尘检测电路,控制电路以及单片机控制电路进行调试。在对每个模块的进行调试过程中又采用了由局部到整体,由简单到复杂的调试方法,最后再将各个模块总和成一个整体。在调试过程中遇到的问题有:由于在焊电路之前没有彻底调查过电阻的大小对PM2.5粉尘检测电路的影响,导致一直以为传感器不工作,显示屏是没有数据显示,后来换了合适的电阻,数据也检测出来了;在解码程序的编写过程中,经过多次的程序修改与硬件调试,基本上能很好地实现自动报警,智能开启换风机,及时改善空气环境的功能。解决:对电路进行测试,如对单片机的输出管脚信号进行测试,观察是否存在漏焊,虚焊,或者元件损坏的现象。若无此问题查看烧写的程序是否正确无误,对程序进行认真修改。当显示亮度不好时阻器的阻值,直到看到合适的亮度为止。经过多次的反复调试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。同时在软件的编程方面得到更到的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。如下为硬件实物图:可通过手动按键设置报警值换风机系统,当超过预定值时自动转动可通过手动按键自我设定STC12C5A60S2LED灯显示外接AT24C02,有掉电保存数据功能1602LED液晶显示开关电源PM2.5空气检测仪的设计与制作GP2Y1010AUOF粉尘传感器每间隔10S更换一次采集浓度值检测更准确声光报警系统,当超过预定值时自动报警结论可通过手动按键设置报警值换风机系统,当超过预定值时自动转动可通过手动按键自我设定STC12C5A60S2LED灯显示外接AT24C02,有掉电保存数据功能1602LED液晶显示开关电源PM2.5空气检测仪的设计与制作GP2Y1010AUOF粉尘传感器每间隔10S更换一次采集浓度值检测更准确声光报警系统,当超过预定值时自动报警经过一番努力后,粉尘测试仪设计的终于完成。在设计该粉尘测试仪的过程中,我首先按照粉尘检测仪的功能设计出其大致的电路电路方框图,然后分析各个功能模块:信号采集模块、信号转换模块、LED1602显示模块的。选好材后画出电路原理图,再到编写程序,最后进行仿真,这次课题设计可以说成功完成。说到编写程序是可花了不少功夫,因为该设计需要精确到小数位的个位,这个可给我带来了苦恼,在同学的帮助下最终解决了这个问题。实验结果表明此粉尘测试仪实现后具有读取方便、显示直观、电路简洁等优点,符合电子仪器仪表的发展趋势,具有良好的市场前景。在整个设计过程中,充分发挥了人的主观能动性,自主学习,学到了许多没学到的知识。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考查资料,和同学讨论,向老师请教,理清了思路,完成对程序的编写。通过设计提高了对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能力;通过这次设计熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。最终较好的完成了设计,达到了预期的目的。但是由于个人能力的原因,这个没能解决所显示的数字有些闪动的效果,以及焊接技能需要加强锻炼在功能方面是显得非常的简单,只实现了三个最基本的功能,还有许多不足和可以扩展的地方。例如实现粉尘检测系统智能化、人性化等,这些有待以后来弥补,还望各位老师予以指正和修改。参考文献[1]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1993:23-24[2]李卫东,李铁军,刘华,曹福德.HG-HC智能烟尘粉尘测量仪[J].仪器仪表学报,2004,[3]董爱华,余琼芳.煤矿井下粉尘信号光电检测电路的研究[J].仪器仪表学报,2003,[5]董晓红.同步粉尘测试仪的设计与实现[D].成都:四川大学.2004[4]梅丽凤,王艳秋,汪琉铎,任国臣.单片机原理及接口技术[M].北京:清华大学出版社,2009:310-321.[5]唐娟.粉尘浓度在线监测技术的现状及发展趋势[J].矿业安全与保护,2009:69-74.[6]吴泉英.数字式粉尘测试仪中的信号处理[J].苏州城建环保学院学报,1999:89-100附录一:系统程序主程序//头文件#include"STC12c5A.h"#include"1602.h"#include"2402.h"#defineucharunsignedchar#defineuintunsignedint//定义按键sbitKey_Up_=P3^4;sbitKey_Down=P3^5;//定义风扇sbitfs=P2^0;//定义蜂鸣器LED报警sbitDUST_Warn=P3^3;sbitLED1=P2^3;sbitLED2=P2^4;//定义标识ucharFlagStart=0;sbitLED=P3^2;//全局变量定义,constcharADC=0x00; //P1^0 uintCounter;uintDUST_SET; //固体颗粒的阈值floatDUST_Value;ucharADC_Get[10]={0}; //定义AD采样数组ucharnum=0;//函数声明voidData_Init();voidTimernit();voidADC_Init();0_Init();voidPort_IucharGetADVal(uchar);voidKeyProcess(void);//数据初始化voidData_Init(){Counter=0;FlagStart=0;DUST_Value=0;DUST_Warn=1;LED=0;fs=1;}//DS185页定时器初始化定时10msvoidTimer0_Init(){ //AUXR=0x80;//Timeworkin1Tmode TMOD=1; TL0=(65536-30000)/256; TH0=(65536-30000)%256; TR0=1; ET0=1; EA=1;}//定时器0中断voidTimer0_ISR(void)interrupt1using0{uinti,j; TL0=(65536-30000)/256; TH0=(65536-30000)%256; LED=1; //开启传感器的LED for(j=0;j<222;j++);//0.28ms//延时0.28ms ADC_Get[num]=GetADVal(ADC); //开启ADC采集 num++; if(num>9) { FlagStart=1; num=0; TR0=0;//先关闭定时器0 EA=0; } //采集10次,关闭定时器0,进行数据处理// for(j=0;j<25;j++); LED=0;//关闭传感器LED}//端口功能设置voidPort_Init(){P1M0=0x03;//DS--88页IO口功能设置,设为开漏11P1M1=0x03;//}voidADC_Init()//DS-282页{P1ASF=0x03;//开启通道0,1ADC_RES=0;ADC_CONTR=ADC_POWER|ADC_SPEEDLL;//每次转换需要420个时钟周期 delay_ms(10);}//进行AD转换,得到当前8位AD值ucharGetADVal(ucharCH){ADC_CONTR=ADC_POWER|ADC_SPEEDLL|CH|ADC_START;//delay_ms(1);while(!(ADC_CONTR&ADC_FLAG));//等待ADC转换结束ADC_CONTR&=~ADC_FLAG;//关闭ADCreturnADC_RES;}//中值滤波//算法:先进行排序,然后将数组的中间值作为当前值返回。ucharError_Correct(uchar*str,ucharnum){unsignedchari=0;unsignedcharj=0;ucharTemp=0;//排序for(i=0;i<num-1;i++){ for(j=i+1;j<num;j++) { if(str[i]<str[j]) { Temp=str[i]; str[i]=str[j]; str[j]=Temp; } } }//去除误差,取中间值returnstr[num/2];}//存入设定值将设定值存储在24C02中voidSave_Setting(void){ucharSave;Save=DUST_SET/256;IIC_Write(0x00,Save);Save=DUST_SET%256;delay_ms(10);IIC_Write(0x01,Save); }//载入设定值从24C02中读取设定值voidLoad_Setting(){DUST_SET=0;DUST_SET=IIC_Read(0x00);DUST_SET*=256;delay_ms(10);DUST_SET+=IIC_Read(0x01);if((DUST_SET>=760)||(DUST_SET<=0))DUST_SET=100;}//按键处理程序voidKeyProcess(void){ucharTemp;uinti,j;Temp=P3;Temp&=0xf0;if(Temp!=0xf0){ //延时 //for(i=0;i<500;i++)//for(j=0;j<254;j++); Temp=P3;Temp&=0xf0; if(Temp!=0xf0) { switch(Temp) { case0xE0:DUST_SET++;break; // 设定值+ case0XD0:DUST_SET--;break; // 设定值- default:break; } //值限定 if(DUST_SET>=760) DUST_SET=760; if(DUST_SET<=1) DUST_SET=0; Save_Setting(); } }}voidmain(){ucharread;uintDUST;EA=0;//总中断关闭 Data_Init();//数据初始化Port_Init();//端口初始化IIC_Init();LCD_Init(); //液晶初始化LCD_Clear();//清屏LCD_Write_String(4,0,"Welcome");LCD_Write_String(0,1,"PM2.5Detector");delay_ms(2000);LCD_Clear();//清屏delay_ms(10);LCD_Write_String(0,0,"PM2.5:mg/m3");LCD_Write_String(0,1,"Alarm:mg/m3");//载入设定值Load_Setting();ADC_Init();//ADC初始化delay_ms(10);Timer0_Init();//定时器0初始化num=0; DUST=0;FlagStart=0;while(1){ if(FlagStart==1)//10次采集完成 { DUST=Error_Correct(ADC_Get,10); //求取10次AD采样的值 DUST_Value=(DUST/256.0)*5000; //转化成电压值MV DUST_Value=DUST_Value*0.172-99.9;//DUST_Value=((DUST)*38)/4-202;// //固体悬浮颗粒浓度计算Y=0.172*X-0.099

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论