基于单片机煤气控制器(检测仪)设计与实现毕业设计-_第1页
基于单片机煤气控制器(检测仪)设计与实现毕业设计-_第2页
基于单片机煤气控制器(检测仪)设计与实现毕业设计-_第3页
基于单片机煤气控制器(检测仪)设计与实现毕业设计-_第4页
基于单片机煤气控制器(检测仪)设计与实现毕业设计-_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机煤气控制器(检测仪)设计与实现毕业设计说明书题目:基于单片机的煤气控制器设计与实现桂林电子科技大学毕业设计(论文)报告用纸第4页共SECTIONPAGES4页摘要煤气已成为人们生活中必不可少的能源,煤气泄漏事件时有发生,给人们的人生安全和财产安全带来了很多隐患,怎样防止煤气中毒和爆炸已成为人们的迫切需要,因此,煤气控制器应运而生。本课题设计一款煤气控制器,监控煤气炉附近是否有煤气泄漏现象,当煤气泄漏值超过安全标准时,系统进行声光报警,显示煤气的浓度,并发出同步信号控制电磁阀切断气源和控制排气扇进行通风。该设计以单片机为核心器件,以煤气传感器检测气体浓度并用液晶显示浓度,当浓度超过警戒值时,系统进行声光报警。该设计以煤气电磁阀控制煤气的开关,以继电器控制排气扇的开关,从根本上解决安全使用燃气的问题,有效避免因燃气泄漏造成的火灾、爆炸、窒息、死亡等恶性事故的发生。本设计经测试,最终实现了课题要求的各个功能,基本实现了煤气控制器的设计。关键词:单片机;煤气;报警;控制AbstractThegashasbeenanessentialsourceofenergyinourcommonlife,butgasleakeventssometimesoccur,whichbringmanyhiddentroublestohumans’lifesafetyandpropertysecurity.Sohowtopreventgaspoisoningandexplosionscomesintoneeded.Therefore,thegascontrollercameintobeen,whengasleakexceedsthesafetystandards,gasdetectorwillmakeaspotandacousto-opticalarmimmediatelyanddisplaysgasconcentration.Inaddition,thegasdetectorcansendoutsignalstoholdingcontroltheelectromagneticvalvetocutoffgassourceandtheexhaustfantobefree,finallyterminatesthegasaccident,nomatterthereisanyonethereornot.Thesubjectistodesignakindofgascontrollertodetectwhetherthereisgasleakornot,ifthereissomethingunusual,itcancutoffthegassourcesautomaticallyandventilate.Thisdesignusessinglechipascorecomponent,gassensortodetectgasconcentrationanddisplayitontheLCD.Inaddition,usesgaselectromagneticvalveastheexecutivebodytoopenorclosegassourceandrelaytocontrolshut-downofaccidentssuchasfire,explosion,stranglinganddeathcausedbygasleak.Thisdesignfinallyfulfilledeveryfunctionthatdesignedaftertesting,thereforerealizingtheconceiveofgascontrollerbasically.Keywords:gas;alarm;solenoidvalve;draftfan1670引言 11511系统设计 1275301.1设计任务 1241751.2设计要求 1278932方案论证 1175212.1系统构成方案 2191422.2控制器系统方案 239932.3A/D转换电路方案 2325372.4显示电路方案 3262102.5人机交流电路方案 3322.6声光报警电路方案 4126172.7控制电路方案 469323系统框图及主要部分介绍 4155044硬件电路设计与调试 4305774.1单片机最小工作系统电路 4299524.2数据采集电路 633774.2.1MQ-5简介 6326874.2.2数据采集电路 8281484.3A/D转换电路 9115494.4人机交流电路 9384.5显示电路 1026044.6声光报警电路 1111944.7控制电路 1196474.7.1电磁阀控制模块 11170464.7.2风扇驱动模块 1260595软件设计与调试 13209885.1软件设计方法 13326485.2程序流程图 1314985.3电压-浓度曲线的拟合 1563245.4软件部分的调试 20139876测试结果 20167876.1测试仪器 20312336.2煤气控制器的测试 21311736.3CO参数测试 21274137结论 229212谢辞 2428768参考文献 2523579附录 2617312附录一原理图 2629854附录二PCB图 2713292附录三程序清单 28桂林电子科技大学毕业设计(论文)报告用纸第39页共SECTIONPAGES39页引言近年来,随着生活水平的增高,全国煤气行业发展迅猛,煤气,液化气,天然气等能源已在千家万户得到了广泛的应用。燃气的普及与应用无疑对改善境质量和提高人们的生活质量发挥了巨大的作用。然而,由于使用不当或者设备老化等原因导致的燃气泄漏引发的中毒,爆炸,火灾时有发生,直接威胁着人们的生命安全和财产安全,及时发现可燃气体的泄漏将是安全使用可燃气体的一个重要方面。一般的煤气报警器功能单一,性能稳定性差,必须手动关煤气阀门,在无人的时候还是会引起火灾、爆炸等灾难。而大型的监控系统价格昂贵,需专门的技术人员管理,不适合家用。因此,为了防止这类灾难的发生,为了让燃气更好的造福于民,造福于社会,煤气控制系统应运而生。煤气控制系统的应用减少了各种因燃气泄露而引发的爆炸及火灾等灾难,它具有成本低,性能稳定,可靠性高等特点。煤气控制系统以单片机为核心,当煤气传感器检测到煤气,其电阻值会随着浓度的变化而变化,从而产生一个电信号,经信号调理电路后转化成电压信号,再经过A/D转化后传给单片机,当空气中的煤气浓度超过警戒值时,单片机驱动声光报警,并且通过自动关闭煤气电磁阀及时切断气源,驱动排风扇进行通风将有毒气体排出室外,从而防止了灾难的发生。本设计加入了人机交流部分,用户可以根据自身需要设定报警值。煤气控制器的设计与应用,从根本上解决安全使用燃气的问题,有效避免因燃气泄漏造成的火灾、爆炸、窒息、死亡等恶性事故的发生,可广泛应用于城市安防,小区,工厂,学校,家庭,燃气运输等众多领域。系统设计设计任务本课题要求设计一款煤气控制器,监控煤气炉附近是否有煤气泄漏现象,如有异常可自动关闭气源并进行通风。设计要求(1)选用合适的煤气传感器,对液化气,天然气,人工煤气有较好的灵敏度,探测范围可达300~10000ppm,要求响应时间:≤10s;(2)选用合适安装的煤气电磁阀,气体浓度达到设定报警值,就联动关闭气阀;(3)当气体浓度达到设定报警值,能驱动排风扇通风;(4)单片机实现数据记录,驱动声光报警;方案论证煤气控制器由MCU模块,数据采集模块,A/D转换模块,人机交流模块,显示模块和控制模块组成。系统构成方案(1)方案一采用NE555时基电路设计,本报警电路由气敏元件QM-N5和电位器RP组成气体检测电路,时基电路555和其他外围元件组成多谐振荡器。它适用于对可燃性气体的检测、检漏、监控,它的适用范围:可燃性气体,如天燃气、煤气、液化石油气、氢气、一氧化碳、烯烃类等气体。因此用QM-N5可作为煤气、可燃气等的检测探头。(2)方案二系统以单片机为核心,由MCU模块,数据采集模块,数据处理模块,人机交流模块,声光报警模块和控制模块,采用气敏元件MQ-5采集煤气数据。当可燃气体浓度超过控制电路设定值时,控制器通过执行机构发出报警信号并关闭阀门,进行通风。此系统方案简单,具有灵敏度高、稳定性好、响应和恢复时间短等特点。(3)方案总结比较以上两种方案,方案一电路结构简单、工作可靠、成本低和易于实现,但该系统功能单一,不能确保在无人的情况下自动切断气源,避免灾难的发生。方案二硬件资源简洁、价格低廉,系统能将复杂的硬件功能全部采用软件实现,因此系统控制灵活,易于扩展,可以从根本上解决安全使用燃气的问题,有效避免因燃气泄漏造成的火灾、爆炸、窒息、死亡等恶性事故的发生。控制器系统方案方案一采用FPGA,其优点是运行速度快,内部程序并行运行,有处理更复杂功能的能力,但成本也相对高。方案二采用AT89S51单片机,AT89S51是一个低功耗,高性能CMOS8位单片机,其成本相对较低,在设计过程中,只需对其IO口进行操作即可。(3)方案总结比较以上两种方案,方案一运行速度快,但是成本高,虽然51单片机运行速度低的多,但是其价格便宜。该设计是常用的电压采集,对运行速度没有太高的要求,用51单片机完全能完成要求。2.3A/D转换电路方案(1)方案一采用积分型AD转换器,其工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率。(2)方案二采用并行比较型AD转换器,它采用多个比较器,仅作一次比较而实行转换,又称FLash(快速)型。其转换速率极高。(3)方案三采用逐次比较式A/D转换器,逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辨率(<12位)时价格便宜,但高精度(>12位)时价格很高。(4)方案总结比较以上三种方案,方案一由于转换精度依赖于积分时间,因此转换速率极低,电路设计与连接复杂。方案二虽然转换速率极高,但是电路规模极大,价格也贵,只适用于视频AD转换器等速度特别高的领域。方案三速度较高,功耗低在低分辨率(<12位)时价格便宜,因此选用分辨率为8位的ADC0809。2.4显示电路方案(1)方案一选用数码管动态显示。它由单片机实现动态扫描,只需外接少量三极管作为驱动电路,电路简单,便于控制,并且价钱便宜。但是占用大量I/O资源,以及单片机内部资源,显示不稳定。(2)方案二选用液晶显示模块。它有很多不可替代的优点,首先,它显示方便,显示信息全面,内容丰富,很符合人机交互的要求;其次,它有自己的存储器,显示时只要按照时序将数据写入其中即可,不用进行扫描,也就不用占用CPU,并且它能显示丰富的字符。(3)方案总结比较以上两种方案,方案一占用大量I/O资源以及单片机内部资源,并且显示不稳定。而在设计中,剩余的I/O口有限,并且需要显示的内容比较多,所以选用方案二。2.5人机交流电路方案由于本设计只需要4个按键,而且MCU的I/O口资源足够,所以每个按键就对应一个I/O口即可解决。用户可通过该模块按照自己的需求设定报警值,并且当有人发现报警时,可通过按键退出报警。2.6声光报警电路方案该模块由三个发光二极管和一个蜂鸣器组成。三个发光二极管分别表示正常工作,临界报警,报警。蜂鸣器在煤气浓度超过警戒值时报警。2.7控制电路方案该模块由电磁阀和排风扇组成。电磁阀用于关闭气源,排风扇进行通风,将有毒气体排出室内。该模块中,由5v的继电器控制220v的排风扇,当煤气浓度超过报警值时,单片机可控制电磁阀使之关闭,自动关闭气源,并且驱动继电器使排风扇进行通风。系统框图及主要部分介绍AT89S51单片机单片机AT89S51单片机单片机煤气罐电磁阀信号调理煤气传感器 信号调理煤气传感器浓度显示声光报警浓度显示声光报警按键按键继电器继电器风扇风扇 图3.1系统原理框图本系统原理图如图3.1所示。本设计以单片机为核心,煤气传感器检测煤气浓度,并把煤气浓度转换成电阻值,对不同种类,不同浓度的气体有不同的电阻值;信号调理把电阻值转换成电压值,并把信号调理到AD可以采集的范围;AD转换电路把采集来的模拟电压转换成单片机可以处理的数字电压;单片机对采集的数字信号进行处理和判断,运用一定的算法计算出煤气浓度并送到LCD显示器显示出来。用户可以通过按键设定自己需要的报警值。当检测气体浓度超出设定报警阀值时,单片机驱动声光报警,并且通过控制电磁阀关闭气源,通过控制继电器驱动排风扇进行通风。硬件电路设计与调试基于单片机的煤气控制器的硬件电路可以分为MCU模块、数据采集模块、A/D转换模块、人机交流模块、显示模块和控制模块,下面具体介绍各单元电路的设计。单片机最小工作系统电路单片机的本设计的核心部分。原理图如图4.1所示。数据采集模块将采集到的数据经A/D转换之后传给单片机,单片机进行判断,并将电压值转化成浓度,送到显示电路显示其浓度,当浓度达到报警值时,单片机驱动声光报警电路、控制电路。图4.1单片机最小系统单片机最小系统包括单片机时钟振荡电路、复位电路、下载线接口等。复位电路是采用按键脉冲复位,它是利用RC微分电路产生正脉冲来达到目的。晶振电路结合单片机内部电路产生单片机所需的时钟频率。下面分别介绍复位电路和时钟电路。复位电路简介①复位电路原理图复位电路原理图如图4.2所示。本设计是利用按钮脉冲复位,利用RC微分电路产生正脉冲来达到目的。图4.2复位电路原理图②复位电路的作用完成单片机的初始化,即把系统的PC值初始化为0000H,使单片机开始重新运行程序。所以,当单片机运行出错或进入了死循环时,可按复位键重新启动。③电路复位方式单片机系统的复位方式有上电自动复位和按键手动复位两种,其电路结构分别如图4.3所示。上电复位利用电容器充电来实现。按键复位又分按钮电平复位和按键脉冲复位。按钮电平复位将复位端通过电阻与Vcc相接;按钮脉冲复位利用RC微分电路产生正脉冲来达到复位目的。图4.3复位电路(2)时钟电路的设计①时钟原理时钟电路的原理图如图4.4所示。选用12M大小的晶振。图4.4时钟电路②时钟电路的作用时钟电路用来产生单片机工作所需要的时钟信号,从而保证单片机正常工作。单片机工作所需的同步时钟信号主要有两种方法产生,第一种是由单片机片内部时钟电路并结合外部晶振、电容产生,第二种是直接从单片机外部引入时钟脉冲信号。③时钟电路的要求为了保证单片机同步工作方式的实现,系统应在唯一的时钟信号控制下,严格地按时序进行工作。另外,在设计电路板时,晶体振荡器和电容应尽量安装得与单片机靠近些,以减小寄生电容的存在,从而更好的保障系统稳定、可靠的工作。数据采集电路数据采集电路是煤气控制器非常重要的组成部分,该模块选用气敏传感器MQ-5采集煤气浓度。当煤气传感器检测到煤气,其电阻值会随着浓度的变化而变化,从而产生一个电信号。4.2.1MQ-5简介MQ-5是一种气敏传感器。MQ-5型气敏元件对不同种类,不同浓度的气体有不同的电阻值。它对液化气,天然气,城市煤气有较好的灵敏度,对乙醇、烟雾几乎不响应,有快速的响应恢复特性和长期的使用寿命和可靠的稳定性,它简单的测试电路。(1)MQ-5的规格简介①标准工作条件如表4.1所示:表4.1标准工作条件符号参数名称技术条件备注Vc回路电压≤15VACorDCVH加热电压5.0V±0.2VACorDCRL负载电阻可调RH加热电阻31Ω±3Ω室温PH加热功耗≤900mW②环境条件如表4.2所示:表4.2环境条件符号参数名称技术条件备注Tao使用温度-10℃-50℃Tas储存温度-20℃-70℃Rh相对湿度小于95%RhO2氧气浓度21%(标准条件)氧气浓度会影响灵敏度特性最小值大于2%③灵敏度特性表4.3所示:表4.3MQ-5规格符号参数名称技术参数备注Rs敏感体电阻10KΩ-60KΩ(1000ppm甲烷)探测范围:300-5000ppm液化气,天然气,煤气。α(1000ppm/5000ppmCH4)浓度斜率≤0.6标准工作条件温度:20℃±2℃Vc:5.0V±0.1V相对湿度:65%±5%Vh:5.0V±0.1V预热时间不少于24小时(2)MQ-5测试电路MQ-5测试电路如图4.5所示。根据测试电路可以得出,Rs/RL=(Vcc-Vout)/Vout。气敏传感器需要预热一段时间,待其稳定后,AB端相当于一个电阻,即Rs,Rs随着浓度的增大减小。滑动变阻器RL选用20kΩ,H外接5V的电源,A端接5v电压,B端与滑动变阻器分压输出。图4.5MQ-5测试电路(3)MQ-5灵敏度特性曲线图4.6MQ-5型灵敏度特性MQ-5型气敏传感器的灵敏度特性曲线如图4.6所示。Rs为气敏传感器在不同气体、不同浓度下的电阻值,Ro为气敏传感器在洁净空气中的电阻值,经测量,Ro=11.5KΩ。根据MQ-5的灵敏度特性曲线和测试电路,可以得出电压与浓度的关系。4.2.2数据采集电路数据采集电路如图4.7所示。在数据采集电路中,煤气传感器MQ5检测煤气的浓度,并将其检测到的浓度转化成电阻值,不同的浓度对应不同的电阻值。滑动变阻器R00分压输出,取R00=20KΩ。由于输出电压在0~5V间变化,所以运放LM358在这里起电压跟随器的作用,起缓冲及隔离作用,有阻抗匹配的作用。在本设计中,由于检测的气体是煤气,煤气的主要成分的CO,所以把输出电压代入CO的电压-浓度关系式就可以求出浓度。本设计还可以检测CH4、alcohol等燃气。图4.7数据采集电路A/D转换电路图4.8A/D转换电路A/D转换电路如图4.8所示。在A/D转换电路中,由于只需用一个通道,所以选用IN0,ADD-A、ADD-B、ADD-C接地,IN0采集数据,ADC0809将IN0采集的模拟电压转换成数字电压送至单片机的P0口。ADC0809需要500KHz的时钟信号,由单片机提供。VREF(+)接+5V,VREF(-)接地。人机交互电路人机交互电路如图4.9所示,人机交互模块可以让用户自己设定报警值,并且当用户听见报警时,可以退出报警。由于按键只有四个,所以每一个按键对应一个I/O口。按下按键S5,报警值加100;按下按键S4,报警值减100;当按下S3时确定报警值;按下按键S2,系统退出报警。该模块加入上拉电阻,上拉电阻可以产生上拉电压,使电路更稳定。图4.9人机交互模块显示电路图4.10显示电路显示电路如图4.10所示,液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。这里采用字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等。本课设使用2行16个字液晶屏。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。本模块用于显示煤气的浓度值和用户设定的报警值。声光报警电路声光报警电路如图4.11所示,它由三个发光二极管和蜂鸣器组成。正常时,绿色发光二极管亮;当接近警戒值时,黄色发光二极管闪烁;当超过警戒值时,红色发光二极管闪烁,黄色和绿色发光二极管灭,同时,蜂鸣器响。图4.11声光报警模块控制电路控制电路由电磁阀控制模块和风扇驱动电路组成。电磁阀模块用于关闭气源,风扇驱动模块用于通风,将有毒气体排出。4.7.1电磁阀控制模块电磁阀控制模块如图4.12所示,本设计选用燃气电磁阀。燃气电磁阀是燃气管道的安全紧急切断装置。它可与燃气泄漏报警系统连接或与消防及其他智能报警控制终端模块等连接,实现现场或远程自动/手动紧急切断气源,确保用气安全。当发生有害的强烈震动时,阀门会自动关闭。在电磁阀控制模块中,由于电磁阀的额定电压是3V,而电路提供的电压是5V,所以利用二极管降压,二极管还有驱动作用。电磁阀不通电时默认关闭状态,上电即可导通。当检测煤气浓度超过警戒值时,单片机给三极管一个低电平,三极管截止,电磁阀关闭;当检测煤气浓度低于警戒值时,单片机给三极管一个高电平,三极管导通,电磁阀导通。图4.12电磁阀控制模块4.7.2风扇驱动模块风扇驱动电路如图4.8所示,由5V的继电器控制220V的排风扇。继电器在这里起开关作用。由单片机来控制继电器的开关,从而控制排风扇的转停。图4.13风扇驱动模块4.8硬件电路调试硬件是系统的躯体,硬件的好坏直接影响了结果,也影响了程序调试的进度。硬件调试是整个系统设计的重要环节。在调试时,采用各模块分开测试,即分别编写各模块的程序,看个模块是否正常工作。下面介绍在调试过程中遇到的问题及解决方法。先下一个程序到单片机,看下载口是否可以用,经测试,发现无法正常下载程序。检查后发现,是因为单片机下载口和液晶显示共用了I/O口,所以下载程序的时候需把液晶1602取下来即可正常下载。检查复位电路,发现复位电路不工作,仔细观察后,发现是原理图上复位按键的一端未加VCC,经改正后,复位电路可以工作。(3)再分别测试各模块,单片机可以正常工作,液晶显示模块能够正常工作,ADC0809能够采集煤气传感器传来的信号。(4)声光报警电路的发光二极管可以正常工作,但是蜂鸣器不能正常工作。开始时蜂鸣器装在NPN三极管的集电极,由于NPN三极管的基极未加限流电阻,而射极直接接地,所以当单片机给高电平给三极管基极时,基极其实只有0.7v,所以蜂鸣器声音不会响,把蜂鸣器接到射极,蜂鸣器有压降,并在基极接上一个限流电阻,蜂鸣器即可正常工作。(5)人机交流模块不能正常工作,由于在检查人机交流模块时,开始只检查了P3_7口控制的按键,发现其反应时间很长,也就是要按很久才会有反应,开始以为是延时的问题,但是无论怎么修改程序,情况都没有改善,后来发现按键是坏的,换了一个按键即可。(6)风扇驱动模块不能正常工作,由于继电器封装和买的继电器不一致,所以割线后,继电器能正常工作。(7)本设计中的燃气电磁阀有三根线,当在红黑两根线接入3V电压时,电磁阀导通,在黄黑两根线接入3V电压时,电磁阀关闭。由于燃气电磁阀不上电时默认关闭状态,而在红黑两根线接入3V电压时呈导通状态,所以在设计中,把黄线剪断,只需用三极管控制红黑两根线间是否有电压即可。三极管导通时,红黑两根线间接入3V电压,电磁阀导通;三极管不导通时,红黑两根线间没有电压,电磁阀关闭。软件设计与调试如果说硬件是电路的躯体,那么软件就是让这个躯体动起来的灵魂。软件的设计要基于硬件的基础,以设计的功能为方向来实现。软件设计主要包括AD采集模块,显示模块,键盘模块以及浓度的换算模块。5.1软件设计方法设计一个好的应用软件,必须充分考虑如下的一些设计原则。软件在结构上应清晰、简洁、流程合理。(2)各功能子程序应实现模块化、子程序化,以便于调试、连接、移植和修改。(3)程序存储区、数据存储区应合理规划,做到既节约内存容量,又方便操作。(4)对需要特殊抗干扰的应用系统应采用软件抗干扰措施,以提高系统的可靠性。5.2程序流程图(1)主程序流程图如图5.1所示。 图5.1程序主流程图5.3电压-浓度曲线的拟合MQ-5气敏传感器只能把煤气浓度转化成电阻,经信号调理后输出电压信号,因此需要找出电压和浓度的关系式,才能显示煤气的浓度。(1)电压-浓度关系式的计算方法MQ-5的灵敏度曲线如图5.4所示。根据MQ-5的灵敏度曲线和本设计的数据采集电路,可以得到Vout和浓度的离散点关系,经测试,Ro=11.5KΩ,取RL=20KΩ,计算过程如下:先列出每一点浓度对应一个Rs/Ro值,再求出Rs,通过数据采集电路可得Rs/RL=(Vcc-Vout)/Vout即Rs/20=(5-Vout)/Vout.因此可以求出每一点浓度对应的电压值,通过曲线拟合,可以得出电压和浓度对应的关系式。图5.4MQ-5的灵敏度曲线(2)电压-浓度曲线拟合过程下面分别介绍CO、alcohol、CH4的电压-浓度曲线的拟合过程。①CO电压—浓度曲线CO的电压—浓度计算过程如表5.1所示。表5.1CO的电压-浓度计算过程浓度(ppm)RS/RORS(KΩ)Vout(V)1004.3049.451.442003.9545.431.533003.7042.551.604003.5040.251.665003.4039.101.696003.3538.531.717003.1035.651.798003.0835.421.809003.0535.081.8210003.0034.501.8320002.8032.201.9230002.6030.251.9940002.5529.332.0350002.4628.292.0760002.4027.602.1070002.3226.682.1480002.2625.992.1790002.2325.652.19100002.2025.302.21通过excel拟合CO的电压-浓度曲线,为了减小误差,将浓度缩小100倍之后再进行曲线拟合。CO的电压-浓度曲线如图5.5所示。图5.5CO的电压-浓度曲线将拟合的曲线的公式扩大100倍,得出电压和浓度的关系,如公式5-1所示。(5-1)②alcohol电压—浓度曲线alcohol的电压—浓度计算过程如表5.2所示。表5.2alcohol的电压—浓度计算过程浓度(ppm)RS/RORS(KΩ)Vout(V)1004.1047.151.502003.6041.401.633003.2036.801.764003.1035.651.805003.0034.501.836002.9033.351.877002.8032.201.928002.7031.051.969002.7031.051.9610002.6029.902.0020002.2025.302.2030002.0023.002.3340001.9622.542.3550001.9021.852.3960001.8020.702.4670001.7019.552.5380001.6018.402.6090001.5517.832.64100001.5017.252.68通过excel拟合alcohol的电压-浓度曲线,为了减小误差,将浓度缩100倍之后再进行曲线拟合。alcohol的电压-浓度曲线如图5.6所示。图5.6alcohol的电压-浓度曲线将拟合的曲线的公式扩大100倍,得到电压和浓度的关系,如公式5-2所示。(5-2)③CH4电压—浓度曲线CH4的电压—浓度计算过程如表5.3所示表表5.3CH4的电压—浓度计算过程浓度(ppm)RS/RORS(KΩ)Vout(V)1001.3014.952.862000.9010.353.293000.819.322.414000.738.403.525000.708.053.576000.637.253.677000.606.903.728000.556.333.809000.536.103.8310000.505.753.8820000.404.604.0730000.354.034.1640000.303.454.2650000.283.224.3160000.273.114.3370000.252.884.3780000.232.654.4290000.222.534.44100000.202.34.48通过excel拟合CH4的电压-浓度曲线,为了减小误差,将浓度缩小100倍之后再进行曲线拟合。CH4的电压-浓度曲线如图5.7所示。图5.7CH4电压-浓度曲线将拟合的曲线的公式扩大100倍,得到电压和浓度的关系,如公式5-3所示。(5-3)总结根据气敏传感器MQ-5的灵敏度曲线和测试电路,拟合了CO、CH4、alcohol的电压-浓度曲线,得出了电压和浓度的关系式。煤气的主要成分是CO,当气敏传感器MQ-5检测到有煤气时,将其浓度转化成电阻,经信号调理后产生一个电压信号,单片机利用拟合的CO曲线的公式将此电压信号转换成浓度,显示电路显示该浓度。本系统可以检测多种燃气,拟合的CH4和alcohol的电压-浓度曲线可用于系统检测天然气和alcohol气体时计算其相应的浓度。5.4软件部分的调试软件部分的调试的成败直接影响到课题的实践环节。下面介绍在软件调试过程中遇见的问题及解决方法。(1)由于煤气传感器可以把煤气浓度直接转化成电阻,经信号调理后输出电压,所以直接由ADC0809采集输出的电压,ADC0809的通道选择直接接地,所以当启动转换后,不用进行通道选择。在ST端给出一个至少有100ns宽的正脉冲信号启动A/D转换,即ADC0809_EO=0,1,0后才能启动A/D转换,而我在编程时,只写了ADC0809_EO=0,1,所以ADC0809不工作。(2)在编写程序按键扫描程序时,应注意延时消抖。(3)由于电磁阀上电导通,所以在检测到的煤气浓度值超过警戒值时,单片机给控制电磁阀的三极管的基极一个高电平,电磁阀关闭,当煤气浓度低于警戒值时,电磁阀导通。(4)当单片机给继电器一个高电平时,继电器工作,排风扇被开启,低电平时,风扇停止转动。由于单片机默认高电平,所以主程序里一开始就要给控制继电器的那个单片机I/O口赋低电平。(5)当煤气浓度低于报警值,单片机控制绿灯亮;当快到达警戒值时,单片机控制黄灯闪烁;当煤气浓度超过报警值时,单片机控制红灯闪烁,蜂鸣器响,并检测退出报警的按键是否有按下,若按下,则退出报警。(6)在计算浓度时,开始定义浓度类型为整型,其取值范围在-32678~32676之间,在测试过程中,浓度有时候会大于32676,此时会溢出,煤气控制器停止报警,电磁阀导通,风扇停止工作。因此把数据类型改为无符号长整型。测试结果6.1测试仪器微型计算机 1台 数字万用表 1个煤气罐1罐6.2煤气控制器的测试拧开煤气罐阀门,放一点煤气出来,煤气控制器检测煤气,液晶屏显示其浓度。当煤气浓度超过警戒值时,声光报警电路进行报警,电磁阀关闭,同时,排风扇开始进行通风。空气中的煤气浓度开始降低,当煤气浓度低于警戒值时,煤气控制器停止报警,电磁阀导通,排风扇停止通风。6.3CO参数测试(1)由气敏传感器MQ-5的灵敏度曲线和测试电路可以得出每一点的浓度对应的电压值Vout,如表6.1所示。该浓度为理论值。表6.1浓度理论值对应的电压浓度理论值(ppm)Vout(V)1001.442001.533001.604001.665001.696001.717001.798001.809001.8210001.8320001.9230001.9940002.0350002.0760002.1070002.1480002.1790002.19100002.21(2)编程让液晶显示同时显示采集回的电压和浓度,记录Vout对应的浓度值,如表6.2所示。该浓度为测量值。表6.2采集的电压对应的浓度值Vout(V)浓度测量值(ppm)1.44911.531731.602891.664331.695261.716001.799911.8010541.8211901.8312641.9221431.9931782.0339562.0749032.1057452.1470692.1782392.1991142.2110073(3)通过以上两个表,可以比较浓度的理论值与浓度的测量值,计算误差。测试结果如表6.3所示。表6.3测试结果浓度理论值(ppm)浓度测量值(ppm)误差(%)100919.0020017313.503002893.674004338.255005265.20600600070099141.52800105431.75900119032.221000126426.4020002143793400039561.10500049031.94600057454.25700070690.99800082392.99900091141.2710000100730.73(4)总结通过参数测试,测量的浓度值和理论值误差较小,满足设计要求。7结论本文利用单片机结合现代传感器技术而开发设计了基于单片机的煤气控制器,经过理论和实验验证,该煤气控制器具有成本低、技术成熟、可靠性好、抗干扰能力强、实时性高等优点,系统整体结构简单、容易实现、实用方便,符合安全系统的设计要求。该系统能够及时发现可燃气体,并且保证不管是有人还是无人的情况下都能够自动关闭气源,从根本上解决安全使用燃气的问题,有效避免因燃气泄漏造成的火灾、爆炸、窒息、死亡等恶性事故的发生,可广泛应用于城市安防,小区,工厂,学校,家庭,燃气运输等众多领域。本设计系统包括MCU模块,数据采集模块,A/D转换模块,人机交流模块显示模块和控制模块组成。文中对每个部分功能、实现的过程作了详细介绍。整个系统的核心是进行浓度的实时监控,各项功能的实现满足了课题所有要求。气敏传感器检测煤气浓度,将浓度转化成电阻信号,并且通过信号调理将电阻信号转化成不同的电压信号,并通过A/D转换后送入计算机中进行处理。另外,本系统的气体浓度监控装置设置可变电阻器,使整个装置的灵敏度为可调节的,从而可充分满足用户的监控要求,而且这种调节是非常简单的,设计中加入了按键设定报警值,用户可根据自己的需要设定报警值。本设计系统根据MQ-5气敏传感器的灵敏度曲线,结合电路原理,拟合CO、CH4、alcohol的电压与浓度的关系曲线,因此本系统不仅可以检测煤气,还可以检测天然气,alcohol等可燃气体。本设计应用性比较强,可扩展性高,如果该系统能够投产并投入实际使用中必定能产生相当大的社会经济效益。参考文献[1]胡寿松.自动控制原理(第5版)[M].北京:科学出版社,2007.6[2]黄继昌.实用报警电路——无线电爱好者丛书精品系列[M]北京:人民邮电出版社,2005.2[3]王化祥,李瑞,张淑英,等.一种新型可燃性气体检测仪[J].自动化仪表,2001[4]白驹珩,雷晓平.单片计算机机及其应用[M][5]李育生,常晓明,阎晓伟.基于单片机的煤气渗漏监控系统的设计[J].山西大同大学学报(自然科学版)2008[6]周岳斌一利用单片机对煤气制气过程的检测与控制[J]仪表技术.1997[7]曾令国,郑淑清.智能型煤气泄露监测及自动呼救系统[J].电脑开发与应用,2003[8]沙占友.集成化智能传感器原理与应用[M].北京:电子工业出版社,2004.6[9]P,Ivanov,et.al.,“Nanoparticlemetal-oxidefilmsformicro-hotplate-basedgassensorsystems,”IEEESensorsJournal,Vol.5,No.5,pp.798–809,October2005.[10]D.Barrettino,et.al.,“CMOSmonolithicmetal-oxidegassensormicrosystems”,IEEESensorsJournal,Vol.6,No.2,pp.276–286,April2006. 附录 附录一原理图附录二PCB图附录三程序清单主程序main.c#include"ADC0809.h"#include"LCD1602DRIVER.h"#include"delay.h"#include<math.h>sbitsw5=P3^7;sbitsw4=P3^6;sbitsw3=P3^5;sbitsw2=P3^4;voidscankey(void);ucharkeyv=0;unsignedintresult1=1000,result2,result3,out;unsignedintresult;voidscankey(void){if(sw5==0){delay_Nms(20);if(sw5==0){result1+=100;LCD1602_write_uint(10,0,result1);}}if(sw4==0){delay_Nms(20);if(sw4==0){result1-=100;LCD1602_write_uint(10,0,result1);}}if(sw3==0){delay_Nms(20);if(sw3==0){result3=result1;LCD1602_write_uint(10,1,result3);}}if(sw2==0){delay_Nms(20);if(sw2==0){out=1;}}}voidmain(void){P2_2=0;//风扇关LCD1602Init();//1602初始化ADC0809_Intit();//0809初始化result3=2000;while(1){LABA=0;//关喇叭result=GetDataFromADC0809(); if(result<result3)out=0; //Display();P2_4=0;//绿灯亮scankey();if((result>=(result3-100))&&(out==0)){P2_3=0;//黄灯报警,闪烁delay_Nms(250);P2_3=1;delay_Nms(250);} if((result>=result3)&&(out==0)){P2_2=1;//开风扇 P2_1=0;//关电磁阀 P2_4=1;P2_3=1;LABA=1;//蜂鸣器响while(1){result2=GetDataFromADC0809();//Display(); scankey(); if(out==1)break;if(result2<result3) break; else{P2_0=0;//红灯报警,闪烁 scankey();delay_Nms(500); P2_0=1; scankey();delay_Nms(500);}//LCD1602WriteString(2,1,"alarm"); } }P2_2=0;//关风扇P2_1=1;//电磁阀P2_4=0;//P2_3=1;//P2_0=1;//LABA=0;//蜂鸣器 // LCD1602WriteString(2,1,"normal"); }}A/D转换程序#include"ADC0809.H"#include"LCD1602DRIVER.h"#include<math.h>/*********初始化ADC0809*******/voidADC0809_Intit(void){ ADC0809_EO=0;ADC0809_START=0;}/*****************延时************/voidDelay1(uintt){while(t--);}/**************************************************//****从ADC0809读取数据************/unsignedintGetDataFromADC0809(){ulongtemp; floattemp1;floatx=0,y=0; unsignedlonginta; unsignedlongintb; ADC0809_START=1;//启动AD ADC0809_START=0;Delay1(10); while(1){ if(ADC0809_EOC_BUSY==1){ ADC0809_EO=1;temp=ADC0809_data;ADC0809_EO=0;break;}}temp=temp*(4560/255);//5V参考电压 a=temp; x=a/1000+((a/100)%10)*0.1+((a%100)/10)*0.01+(a%10)*0.001; y=1.64*x*x*x*x*x*x*x*x*x*x*x;b=y;LCD1602_write_uint(0,1,a); LCD1602_write_uint(0,0,b);LCD1602WriteString(6,0,"ppm");returnb;}1602显示程序#include"LCD1602DRIVER.h"#include"delay.h"//*******************************************//函数名称:voidLCD1602WriteCommand(ucharCommand)//函数功能:向LCD1602写入指令//*******************************************voidLCD1602WriteCommand(ucharCommand){LCD1602RW=0;//写指令:RW=0,RS=0,E=1delay_Nus(500);LCD1602RS=0;delay_Nus(500);LCD1602E=1;delay_Nus(500);LCD1602DATA=Command;LCD1602E=0;}//*******************************************//函数名称:voidLCD1602WriteData(ucharData)//函数功能:向LCD1602写入指令//*******************************************voidLCD1602WriteData(ucharData){LCD1602RW=0;//写数据:RW=0,RS=1delay_Nus(500);LCD1602RS=1;delay_Nus(500);LCD1602E=1;delay_Nus(500);LCD1602DATA=Data;LCD1602E=0;}//*******************************************//函数名称:voidLCD1602SetXY(ucharx,uchary)//函数功能:定义光标位置,也就是要显示数据的位置//*******************************************voidLCD1602SetXY(ucharx,uchary)//数据地址指针{ucharAddress;if(y==1)Address=0xc0+x; //第二行,0x80+0x40=0xc0elseAddress=0x80+x; //第一行LCD1602WriteCommand(Address); //送地址}//*******************************************//函数名称:voidLCD1602SetXY(ucharx,uchary)//函数功能:1602初始化,数据手册说得很清楚啦//*******************************************voidLCD1602Init(void) {delay_Nms(15);LCD1602WriteCommand(0x38);delay_Nms(5);LCD1602WriteCommand(0x38);delay_Nms(5);LCD1602WriteCommand(0x38);//显示模式设置;设置16*2显示,5*7点阵,8位数据接口LCD1602WriteCommand(0x08);//关显示LCD1602WriteCommand(0x01);//清屏LCD1602WriteCommand(0x06);//显示光标移动设置LCD1602WriteCommand(0x0c);//显示开及光标移动设置}//*******************************************//函数名称:voidLCD1602CLEAR(void)//*******************************************voidLCD1602CLEAR(void){LCD1602WriteCommand(0x01);//清屏}//*******************************************//函数名称:voidLCD1602WriteOneChar(ucharx,uchary,ucharData)//*********************

温馨提示

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

评论

0/150

提交评论