基于单片机的可燃性气体检测仪的设计.docx
《基于单片机的可燃性气体检测仪的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的可燃性气体检测仪的设计.docx(34页珍藏版)》请在冰豆网上搜索。
基于单片机的可燃性气体检测仪的设计
安徽农业大学
毕业论文(设计)
论文题目基于单片机的可燃性气体检测仪的设计
姓名学号
院系专业
指导教师职称
中国·合肥
二o一三年五月
安徽农业大学学士学位论文(设计)开题报告
课题名称
基于单片机的可燃性气体检测仪的设计
课题来源
自拟
学生姓名
专业
学号
指导教师姓名
职称
讲师
研究内容
主要设计一个可燃性气体监测报警仪,它由气体传感器、放大电路、AD转换电路、单片机、可视化、报警部分等组成。
通过ADC0832芯片将传感器的模拟信号转化为数字信号,传递给AT89S52单片机进行相应的数据处理,进行实时检测和实时显示。
研究计划
2012.12~2013.1调研、准备设计需要的材料完成开题报告
2013.1~2013.2仔细阅读需要的材料
2013.2~2013.3完成传感器放大电路的设计和硬件电路设计
2013.3~2013.4完成程序调试及所有设计部分
2013.4~2013.5完成毕业论文
2013.5~2013.6制作答辩PPT准备毕业答辩
特色与创新
可燃性气体监测报警仪虽然应用非常广泛,但是精度也受到各方面因素的制约,同时成本较高,本设计通过ADC0832设计一种低成本和较低成本的报警仪。
指导教师意见
教研室意见
学院意见
基于单片机的可燃性气体检测仪的设计
学生:
指导教师:
(合肥230036)
摘要:
本设计对可燃性气体浓度检测、控制报警进行了深入的研究,设计出一种技术水平较好的可燃性气体报警器。
选用的AT89S52单片机是一种低功耗、高性能的微控制器。
使用MQ-2型半导体电阻式烟雾传感器具有灵敏度高、响应快和抗干扰能力强等优点。
以AT89S52单片机和MQ-2型半导体电阻式烟雾传感器为核心设计的可燃性气体报警器可实现报警、浓度级别显示、温度显示等功能。
本设计可以检测环境中以烷类气体为主的多种可燃性气体的浓度,实时显示浓度值,当达到设定的上限报警值时,发出声音报警和灯光信号,以提示操作人员采取安全对策。
本装置可以实时、准确检测可燃性气体,具有广泛的应用前景和推广价值。
关键词:
可燃性气体,AT89S52,MQ-2,检测,报警
1绪论
1.1设计研究的目的和意义
随着城市天然气的使用及化学工业的迅速发展,可燃性气体的种类和应用范围在不断增加,可燃性气体主要含有烷类、烃类、氢气、苯类、烯类、醇类以及一氧化碳等成分,不但易燃、易爆还是有毒气体,在生产、运输、贮存以及使用可燃性气体的过程中,都有可能发生可燃气体泄漏的现象,当可燃性气体与空气中的氧气混合后达到一定的浓度时,遇明火就会发生强烈的化学反应,不仅会引起大火甚至发生爆炸事故,给国家和人民的生命和财产造成巨大的损失。
据统计2007-2010年间共发生可燃性气体爆炸事故224起,死亡1688人。
如果能够在事前对可燃性气体爆炸有正确的认识,了解爆炸事故发生前的条件,采取正确的预防措施,对人身和财产安全具有重要的现实意义。
因此研究性能稳定可监测可燃性气体浓度并报警装的置其重要的意义。
我国目前大多数城市都在使用天然气作为主要能源,使用人口约达三亿人,天然气气发生基地及中转站也达几千家。
如果这些家用燃气和煤气基地及中转站的报警率按5%计算,可燃性气体浓度监测报警装置的需求量就达1000万台以上。
随着全社会对防火防爆及人身安全的重视程度的提高,这个数字会继续增长。
近十年来,农村的沼气使用也得到了极大的发展。
到2012年底,全国沼气的数量已达近1800万座,这就为监测沼气(主要成分是甲烷)浓度的仪器提供了市场。
可见,可燃性气体浓度监测报警装置具有十分广阔的市场前景。
1.2本设计主要完成的任务
本设计是基于单片机的小型可燃性气体浓度监测报警装置的研制,本设计主要需要完成以下任务:
(a)确定可燃性气体浓度检测报警装置的总体设计,对系统进行整体的规划和结构的设计;
(b)装置的硬件部分设计。
采用AT89S52作为处理器,MQ-2采集可燃性气体的浓度,装置的电路主要为AT89S52单片机电路、A/D转换电路、声光报警电路、复位电路、LED显示电路等;
(c)代码编写部分。
在代码编写的时候,绘制这部分的流程图,代码分段进行编写,并加入必要的文字注释,方便后期的维护和升级;
(d)成品的制作。
实现可燃性气体浓度检测报警装置的功能。
电路焊接完成后,对程序进行烧制,并进行反复的调试和完善,最终实现设计功能。
2可燃性气体传感器
2.1气体传感器的选型
可燃性气体传感器是一个把气体浓度信号转化成电压信号,然后通过A/D转化器,进而由单片机采集信号、数据处理、浓度显示以便报警控制。
传感器作为对可燃性气体的敏感元件,是各种类型(袖珍式、便携式、固定式)仪表的核心之一。
因此,传感器的选型是非常重要的。
2.1.1气体传感器的种类
气体传感器的发展历史已经有几十年了,技术方面已经什么成熟了,市场上常见的可燃性气体传感器主要有:
半导体体式、电化学式、光学式、接触燃烧式和固体电解质气体传感器。
下面对这五种气体传感器做简单的对比介绍。
(1)半导体气体传感器主要使用半导体作为生产材料,依据半导体材料随着气体浓度的改变电阻发生相应的变化的原理。
产品具有不仅结构简单,而且价格便宜等诸多优点,所以这类传感器得到了广泛的应用。
(2)电化学传感器主要是使用电极和电解液灌封而成。
是将环境中气体在电场下进行电离,然后测量电解后的电流的工作原理。
产品在灵敏度很高,主要是对有毒气体进行检测,所以有一定的局限性。
(3)光学气体传感器是利用气体反应产生色变引起光强度吸收的原理,在使用过程中气体光感变化受到环境限制,所以传感器的自由度小,有一定的局限性。
(4)接触燃烧式气体传感器是在通电状态下,使用催化剂让可燃性气体发生氧化反应,然后让电阻率发生改变的原理。
这类传感器灵敏度不是很高。
(5)固体电解质气体传感器是气体通过传感器的时候产生离子,从而形成电动势,使其电压发生的原理。
产品在制作工艺上成本高,在检测范围上也有局限性。
2.1.2选定可燃性气体传感器MQ-2
半导体可燃性气体传感器包括用氧化物半导体陶瓷材料作为敏感体制作的可燃性气体传感器以及用单晶半导体器件制作的可燃性气体传感器。
按敏感机理分类,可分为电阻型和非电阻型。
半导体气敏元件也有N型和P型之分。
N型在监测时阻值随可燃性气体浓度的增大而减小,P型阻值随可燃性气体浓度的增大而增大。
半导体气敏传感器的分类如图2-1所示。
所利用的特性工作温度表面电阻控制器300~450°C。
图2-1半导体气敏传感器的分类
本设计中采用的MQ-2型可燃性气体传感器属于SnO2半导体气敏材料,半导体类型是表面离子式N型。
当环境温度处于300°C左右时,SnO2材料吸附空气环境中的氧气,然后转化成氧负离子,促使电阻值增大。
如果环境中存在可燃性气体泄漏,可燃性气体就会进入传感器与氧负离子结合,进而引起电阻值的变化。
本设计就是利用这种原理进行可燃性气体的检测。
2.2MQ-2传感器简介
2.2.1MQ-2传感器概述
MQ-2型传感器的结构图如图2-2所示。
传感器共有六个引脚,其中两个是用来加热的引脚,另外的四个引脚是用来信号输出的,MQ-2可燃性气体传感器的精度是19.53mV。
图2-2MQ-2型传感器的结构图
2.2.2MQ-2传感器详细说明
MQ-2可燃性气体传感器的敏感层是用稳定的SnO2制成的。
因此,它具有优秀的长期稳定性,在正常使用条件下,其使用寿命可达5年。
图2-3给出了MQ-2元件对不同气体的灵敏度特性。
温度为20摄氏度,湿度为65%,氧气浓度为21%,RL=l0k,Ro为1000ppmLPG(液化石油气)中气敏元件电阻,Rs为不同气体不同浓度下气敏元件电阻。
图2-3MQ-2灵敏度特性曲线
MQ-2工作原理:
传感器的表面电阻Rs是通过与其串联的负载电阻RL上的有效电压信号VRL输出而获得的。
二者之间的关系为:
图2-4为负载测试曲线图,是利用测试回路测得在传感器由洁净空气转移至一氧化碳或甲烷气氛中时,RL上的信号输出变化情况,输出信号的测定是在一个完整的加热周期或在两个完整的加热周期内测得。
图2-4负载测试曲线图
3可燃性气体浓度检测报警装置的硬件设计
3.1可燃性气体检测报警器的设计
在可燃性气体浓度检测报警装置的设计中,单片机是装置的核心部件。
单片机不仅要接收可燃性气体采集的经过A/D转换的数字信号,而且还要对这些型号进行处理,作出相应的判断,采取必要的措施。
AT89S52单片机在本装置中起到了很关键的作用,特备是在采集气体浓度的信号处理上面,要求AT89S52有很快的运行速度,才能对空气环境中的可燃性气体浓度进行采集,从而采取相应的措施。
本次设计在考虑性价比的同时,也考虑了运行速度以及稳定性等,依据老师的推荐以及自己擅长的知识点,所以本设计选用的单片机为AT89S52系列单片机作为本装置的核心控制器。
首先,可燃性气体在空气环境中的浓度信号通过MQ-2气体传感器将可燃性气体浓度信号转换成电压信号,经过ADC0832进行A/D转换,输出一个适合单片机接收的模拟信号,然后,送入AT89S52中,通过单片机线性化数据处理后,将电压信号转化成对应的十六进制浓度值。
最后,将浓度值送入LED数码管显示。
当检测到的可燃性气体浓度超出上限报警设定值时,报警器发出声音报警。
报警器系统结构框图如图3-1所示,系统以单片机为核心,配合外围电路共同完成信号采集、浓度显示、状态显示、声音及闪烁报警功能。
报警器采用巡检的工作方式,进行两级报警值设定,并发出不同的光、声信号。
系统应采用高性能的单片机,要求工作稳定、测量精度高、通用性强、功耗低,保证报警器的精确性及可靠性,而且最好体积小,成本低,有利于减少报警器的体积,降低报警器的成本。
图3-1可燃性气体监测报警器结构框图
3.2可燃性气体浓度检测报警装置的电路设计
3.2.1AT89S52单片机
AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。
该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。
片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI串行口改写或用同用的非易失性存储器改写。
通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。
它的应用范围广,可用于解决复杂的控制问题,且成本较低[1]。
图3-2AT89S52
3.2.2ADC0832的介绍
ADC0832具有以下特点
(1)采用8位分辨率,也就是说是256个字节;
(2)双通道AD转换,便于输入与输出;
(3)输入输出电平与TTL/CMOS相兼容,所以兼容性很好;
(4)当采用5V电源供电时,输出电压在0-5V之间;
(5)工作频率为250KHz,转换时间为32us。
3.2.3ADC0832与单片机接口电路
图3-3ADC0832与单片机接口电路
3.2.4单片机对ADC0832的控制
ADC0832与单片机的接口为4条数据线,分别为CS,CLK,DO,DI.但由于DO,DI在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可将DO,DI并联在一根数据线上使用。
当ADC0832未工作时,CS端为高电平,芯片禁用。
CLK,DO,DI的电平任意。
要进行转换时必须先将CS使能端置为低电平。
DO、DI用于输入通道功能选择数据信号。
CH0/CH1用于输入信号。
3.2.5DS18B20测温电路
图3-4DS18B20电路
DS18B20的1脚接地,2脚数据端接单片机的P3.4,3脚接VCC,为了确保DS18B20工作可靠,2脚要接10K的上拉电阻。
发生爆炸不仅和气体浓度有关,温度也有影响,当气体浓度达到一定值后,只有达到爆炸温度限,可燃性气体才会发生爆炸。
3.2.6报警电路
图3-5声光报警电路
本系统中采用蜂鸣器报警,由于单片机输出电流较小,所以用三极管9013驱动蜂鸣器发出声音。
与此同时,发光二极管发出光线,加强报警效果。
3.2.7四位数码管显示电路
图3-6数码管显示电路
4位数码管为共阳管,由于单片机输出电流比较小,故用4个PNP型的三极管9012来驱动数码管。
单片机输出低电平时三极管导通,使数码管的4各公共端1、4、5和12脚为高电平,此时数码管的数据端输入低电平后数码管被点亮,120欧电阻R12到R19为三极管的限流电阻。
3.2.8可燃性气体传感器转换电路
图3-7可燃性气体传感器MQ-2经过AD0832转换后接单片机口
3.3LED数码管
3.3.1LED数码管的引脚说明
这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。
图3-8共阳数码管内部结构
此次设计中采用的是共阳四位数码管,内部的4个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上a~dp,共有12个引脚,下面便是一个共阳的四位数码管的内部结构图(共阴的与之相反)。
引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。
图3-94位共阳数码管内部结构
管教顺序:
从数码管正面看,以第一脚为起点,管脚的顺序是逆时针方向排列。
12-9-8-6公共脚
A-11B-7C-7D-2E-1F-10G-5DP-3
3.3.2数码管编码说明
4位数码管编码说明,如3-1表所示:
表3-1控制命令表
显示
P2.7(e)
P2.6(d)
P2.5(dp)
P2.4(c)
P2.3(g)
P2.2(b)
P2.1(f)
P2.0(a)
十六进制
0
0
0
1
0
1
0
0
0
28H
1
1
1
1
0
1
0
1
1
EBH
2
0
0
1
1
0
0
1
0
32H
3
1
0
1
0
0
0
1
0
A2H
4
1
1
1
0
0
0
0
1
E1H
5
1
0
1
0
0
1
0
0
A4H
6
0
0
1
0
0
1
0
0
24H
7
1
1
1
0
1
0
1
0
EAH
8
0
0
1
0
0
0
0
0
20H
9
1
0
1
0
0
0
0
0
A0H
H
0
1
1
0
0
0
0
1
61H
L
0
0
1
1
0
0
0
1
3DH
-
1
1
1
1
0
1
1
1
F7H
C
0
0
1
1
1
1
0
0
3CH
4可燃性气体报警器的软件设计
4.1主程序设计及流程图
主程序流程图如图4-1所示。
首先要给传感器预热三分钟,因为MQ-2型半导体电阻式可燃性气体传感器在不通电存放一段时间后,再次通电时,传感器不能立即正常采集可燃性气体信息,需要一段时间预热。
程序初始化结束后,系统进入监控状态。
AT89S52单片机对传感器监测的可燃性气体浓度信号进行A/D转换、平均值法滤波、线性化处理后,将浓度值与报警限设定值相比较,判断是否报警。
同时送入段式液晶显示可燃性气体浓度值。
图4-1主程序流程图
4.2主程序初始化流程图
主程序初始化流程图如图4-2所示。
给传感器预热后,程序开始执行初始化子程序,这部分实现的功能包括各种I/O口输入输出状态的设定、寄存器初始化、中断使能等。
首先设定定时初值50ms,利用IAP写入EEPROM,作为取值间隔。
然后设置定时器0,选择方式1。
方式1状态下定时器的工作寄存器TH1、TL1是全16位参与操作。
接下来定时器0中断允许位置1,打开定时器0,关闭蜂鸣器,开启绿灯,设置报警限初值。
图4-2主程序初始化流程图
4.3中位值平均滤波法数字滤波设计
在装置对环境中的可燃性气体进行检测的时候,不可能保证完全没有干扰的现象,偶然的波峰波谷值还是存在的,与正常值相比较差距还是比较大的,所以要对干扰值进行处理。
在本设计中采用的是中位值平均滤波法数字滤波,避免了一般的平均值法将干扰带入到了结果中去,减少了浓度采集的误差。
中位值平均滤波法的原理是采集环境中可燃性气体浓度的N个数据,然后找出最大值和最小值删除不用,计算剩下的N–2个采集数据的平均值。
这种方法大大的减小了偶然的误差,提高使可燃性气体浓度检测仪的准确性。
在准确的实验验证中中,N的值应该取的相对大一点,本设计为了加快测量计算速度和效率,在可燃性气体浓度检测仪的设计中N取值为10。
调用A/D转换器连续进行10次采样,然后找出最大值和最小值舍弃,最后计算余下8个值的平均值,将获得的平均值送到单片机的寄存器中。
下图4-3所示为中位值平均滤波法的程序流程图。
图4-3中位值平均滤波法程序流程图
4.4插值法线性化处理设计
基于单片机的可燃性气体浓度检测仪的设计,在输出的电压信号都是静态模式的,但是在浓度与电阻值的变化往往不是一条理想的直线,因此在实际应用中要对得到的曲线进行线性化处理,模拟出一条近似直线来代替曲线。
插值法是函数逼近的一种重要方法,是数值计算的基本课题。
本次对可燃性气体的浓度与电阻的关系就采用插值法进行线性化。
可燃性气体浓度检测仪使用的MQ-2半导体传感器,MQ-2气体传感器的电阻是随着可燃性气体浓的升高而降低的,因此输入单片机的电压反而是增加的。
图4-4为MQ-2内置电阻的负载电压值与可燃性气体浓度对应曲线,由图可以看出,MQ-2负载电压值与可燃性气体浓度之间是非线性的关系,因此要实时显示可燃性气体浓度,需要对曲线其进行线性化处理。
在误差许可范围内,根据标定曲线形状,把曲线分成若干小段,对每小段分别线性化。
图4-4MQ-2负载采集电压值与可燃性气体浓度关系
根据分段线性插值法求输入单片机的某一电压值对应的可燃性气体浓度的公式如下:
式中,N为所分区间个数,f(x)为实际可燃性气体监测浓度,x为实际气体监测浓度对应的电压值,xi是区间的下限浓度对应电压值,xi+1是区间的上限浓度对应电压值,f(xi)为区间下限可燃性气体浓度值,f(xi+1)为区间上限可燃性气体浓度值。
5代码的编写及烧写过程
5.1代码的编写
本设计代码编写使用的是Keil软件,Keil是当前最流行的单片机开发软件,可以用它来汇编你的汇编语言源程序,编译你的C语言源程序,连接和重定位你的目标文件和库文件,创建HEX文件,调试你的目标程序。
如下图5-1就是用Keil软件编写代码的界面。
图5-1Keil软件编写代码界面
5.2程序的烧写
5.2.1硬件连接
将下载线一端与计算机USB口相连,另一端10PIN插头插入目标电路板的ISP口,然后给目标板上电,如下图5-2所示。
连接过程一定要保证目标板和计算机可靠连接。
图5-2烧写板与电脑的连接
5.2.2烧写软件
AVR_fighter是超强的AVR、AT系列单片机ISP下载编程软件,它支持所有的AVR芯片的编程,支持AT89S51/AT89S52[6]。
打开AVR_fighterFORUSBASP的主界面如下图5-3所示:
图5-3AVR_fighterFORUSBASP的主界面
(1)在上图菜单中选择“编程选项”。
(2)在上图的“芯片选择”方框中选择AT89S52。
这时可点击“读取”按钮来读取芯片的特征字,以验证硬件各部分是否正确。
(3)
然后点击菜单中“装FLASH”按钮,在弹出的窗口中选择“hex文件”并点击“打开”按钮,如图5-4所示。
然后设置相应的参数,即可完成烧写过程
图5-4源程序的装载
6系统调试
6.1硬件的调试
开发中很难做到一次就成功,本设计在开发中也或多或少的遇到了一些问题,主要是在焊接过程中的不小心所致,包括常见的焊点错线、断路、短路。
在焊接完成以后对照设计的电路图,看有没有存在的问题。
在查看没有问题的时候,注重查看电源问题,防止在接电的瞬间产生短路。
接通电源以后用万用表检测节点的电位,保证Vcc和GND之间的电压在4V左右。
LED数码管部分调试,首先用静态方法先测试LED显示,用5V电源接LED的引脚,观察是否与预计的结果一致。
6.2软件调试
软件调试主要采用keil软件调试编译单片机程序。
由于由于AT89S52可以擦写上千次,所以在这个调试过程中,并没有用仿真器来实践,而是直接将程序烧写进单片机来操作。
将通过KEIL软件编译通过的单片机程序生成的“.hex”文件用烧录软件通过下载线烧写进单片机中。
6.3整体调试
综合调试是将已经调试通过的软件和硬件结合起来一起进行调试。
这部分是单片机制作过程中最重要的调试部分。
单一的软件或是硬件的调试通过了并不能验证总的方案的可行性。
只有将整个系统的软件硬件相结合连接起来进行调试,也就是综合调试。
如果调试成功了才能说明此系统的功能实现,系统设计已经成功。
采用Keil软件和硬件电路板进行软硬件联合仿真,首先编译单片机程序,然后运行编译的程序,程序检查成功后,再把程序烧入硬件之中。
对调试过程中出现的错误要仔细分析,然后不断更正错误,直至达到理想效果为止。
在软硬件联调时,根据在程序中设定的阈值,将打火机打火放到气体传感器周围,这样气体传感器就可以采集到相应可燃气体浓度,当浓度超过预设阈值,蜂鸣器就会立即报警,同时吸合继电器。
7结论
本次设计对可燃性气体浓度检测报警装置进行了深入的研究,参考国内外一些资料的基础上加上老师的意见,然后选择了可燃性气体浓度检测报警装置的设计方案,本设计拥有操作简单、价格低廉并且安全性能高的特点,适合在各种可燃性气体环境下使用,具有很高的实用价值。
本次设计的可燃性气体报警器由传感器和AT89S52单片机控制电路两大主要部分组成。
依据装置的要求加上考虑价格因素,最终选用MQ-2气体传感器。
MQ-2传感器是对以烷类气体为主的多种可燃性气体有良好敏感特性的SnO2半导体气敏材料。
MQ-2气体传感器的灵敏度适中,对环境因素要求不高,可以长期的稳定工作。
本次设计实现了装置的小型化以及智能化。
在程序设计上用C语言编写,具有代码运行效率高,而且减小了代码的冗余量。
对环境中采集的可燃性气体,我们采用滤波以及线性化等处理方式,最大限度的降低了外界的干扰,提高了装置的灵敏度。
本次设计也存在着许多有待改善的地方,譬如可以实现远程控制,采用多点同时检测,在浓度超标的时候可以智能的采取补救措施,使设备更加的智能化。
由于时间和能力的限制,无法完成以上的功能,希望本设计可以为今后该领域的研究提供了很好的参考依据。
参考文献
[1]曹建军.基于GPS和无线传感器网络的时钟同步系统[D].南京理工大学,2008.
[2]李朝青.单片机原理及接口技术[M].第三版.北京:
北京航天航空大学出版社,