空气粉尘浓度检测器电路设计与软件编程
本设计以ATmega382p单片机为控制中心,由GP2Y1010AU0F光学空气质量传感器测量空气粉尘浓度,通过单片机内置的10位A/D转换将模拟的电压信号转换成数字信号,得到粉尘浓度值,并由LCD1602显示屏显示出来。同时,设置浓度预警值并同测量值一起显示在显示屏上。当测量浓度超过预警值时,仪器就会报警。
0 引言
随着人类工业和经济的快速发展,我们的环境污染越来越严重。除废气、废水外,颗粒状粉尘、烟尘向大气排放所造成的污染已成为一个十分突出的问题。PM2.5,PM10,PM0.1及其吸附的重金属粒子是雾霾的重要组成部分[1]。2012年2月,《环境空气质量标准》新增了对PM2.5的检测指标,PM2.5成为空气质量标准之一。数据表明,我国空气质量超标的城市中68%都存在可吸入颗粒物的问题[2]。由此可以看出粉尘对人类健康和生产的危害十分严重。所以,粉尘浓度的检测和控制具有重要的意义。
本文介绍一种简易粉尘浓度检测器的设计,能够对空气粉尘进行采样分析,可以测量出空气中的粉尘浓度,测量数据直观易懂,测量结果准确可靠。
1 系统工作原理
单片机选用ATmega328p,粉尘浓度传感器选用夏普GP2Y1010AU0F灰尘传感器,按键部分通过电阻与按键串联将信号输入模拟口,通过读取模拟值的不同判断按键值,显示部分采用LCD1602并用采取I2C总线的8位远程I/O扩展口芯片PCF8574进行引脚简化。
将粉尘检测器电源开关打开,当传感器得到一个由粉尘浓度转换得来的0~5V的电压信号时,进入单片机,经过处理后转变为十进制数通过I/O口在显示屏上显示出精确数值。数值量随输入电压的扰动而变化。同时键盘设定预警值送入单片机,与测量值一同显示出来。当采集的当前粉尘浓度大于预警值时,单片机驱动蜂鸣器报警。
2 系统电路设计
2.1 电路总体设计
以ATmega328p单片机为核心,主要包括单片机处理模块,信号采集模块,独立按键模块,显示模块和蜂鸣器报警模块。系统通过信号采集模块采集空气中的粉尘,得到0~5V的电压信号后,由单片机内部自带的10位ADC进行模数转换得到粉尘浓度,与此同时,通过独立按键模块设定浓度预警值,通过液晶显示模块将粉尘浓度和预警值同时显示在显示屏上。当检测值大于预警值时就会自动通过蜂鸣器报警模块报警。整个系统的框架结构如图所示:
2.2 单片机处理模块
设计选用ATmega328p单片机,该单片机配合Arduino uno使用,可以更加方便的用外接模块进行拓展,如wifi模块、SD卡接口模块、基于w5100芯片的Ethernet模块等,并且其内部自带10位六通道ADC可以用来转换传感器输出的信号,从而得到粉尘浓度。
2.3 信号采集模块
GP2Y1010AUOF是一款由日本夏普公司开发的光学浓度检测传感器。此传感器内部成对角线分布的红外发光管和光电晶体管,利用光敏原理来工作,依靠输出脉冲的高度来判断颗粒物浓度。同时,传感器内部有信号放大电路,可以对光电信号进行放大。其内部结构图如图2所示:
传感器内,红外发光二极管和光电晶体管按对角位置布置,利用发光二极管发射光线,利用晶体管接受二极管发射的光,从而引起电压的变化,这时传感器里的空气传导设备就会产生一定的作用使空气流通。此设计能够检测到小的微粒,甚至非常小的烟草颗粒,测量结果比较准确。
由于GP2Y1010AUOF对驱动的LED的脉冲要求较高,输入信号采样周期为10ms±1ms;输入高脉冲的宽度为0.32ms±0.02ms。所以对于采样信号,需要等待输入信号出现高脉冲以后再计时0.28ms进行采样[3]。
2.4 独立按键模块
按键部分是通过电阻与按键串联将信号输入模拟口,通过读取模拟值的不同判断按键值。因为A/D转换是将模拟的0~5V电压转换成八个二进制位,八个二进制转换成十进制的范围为0~255,所以只需设置三个独立按键分别独立输入预警值的百位,十位,个位。键盘每按下一次则相应位上数据增加1,当数据设定完成后通过I/O口输入单片机,通过单片机的处理转换为三位十进制的浓度预警值,然后显示在显示屏上。
2.5 显示模块
显示模块采用LCD1602并用采取I2C总线的8位远程I/O扩展口芯片PCF8574进行引脚简化。LCD1602是工业字符型液晶,可同时显示16×2即2行,每行显示16个字符液晶模块(显示字符和数字)。因为要同时显示粉尘浓度的检测值和预警值,所以LCD1602的两行显示功能已经满足设计。
2.6 蜂鸣器报警模块
当采集到的环境中的粉尘浓度大于预警值时,单片机就会驱动蜂鸣器报警,然后采取相应措施降低粉尘浓度或者使人员撤离工作现场。由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动。我们采用三极管来放大电流。
3 系统软件设计
软件系统设计主要分为系统初始化模块、驱动传感器模块,A/D模数转换模块,粉尘浓度计算和显示等模块,单片机通过软件开发程序实现对硬件设备的控制,测量并显示粉尘浓度。软件部分设计需要利用单片机所产生的周期为10ms的脉冲波形驱动传感器内部的LED发光,并对信号进行A/D转换,同时进行LCD1602的显示和定时器定时。单片机产生的脉冲波形加在GP2Y1010AU0F上,传感器将输出一个0~5V电压,可通过A/D转换得到相应的粉尘浓度值,最后通过LCD1602显示出来,如果空气粉尘浓度超过了预警值,系统将会报警。
4 总结
本文主要介绍了简易粉尘检测器的设计,在单片机的控制下,完成数据的采集、显示、预警值设置及蜂鸣器预警等系统分模块的程序设计,然后结合各模块的硬件电路来实现每个模块的功能,从而实现整个系统的功能。结果表明,该粉尘检测仪测量结果准确可靠。
作者:李冉 朱思清 王翊 钱国明 来源:科技视界 2016年12期
上一篇:在设计“应用软件”中学习编程
下一篇:议高校软件编程教学中的目的与方法