首页 > 范文大全 > 正文

基于单片机的酒精气体浓度测试仪的设计与制作

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于单片机的酒精气体浓度测试仪的设计与制作范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

基于单片机酒精气体浓度测试仪设计制作

江阴职业技术学院 赵书红 张健健

【摘要】文章以单片机STC12C5A16AD为核心,运用高灵敏度传感器MQ-3气体传感器,采用EEPROM芯片存储预设的报警阈值,并通过LCD显示检测结果及二极管实现超标报警。经过软硬件联合调试,实验结果基本满足设计要求,达到设计指标。

【关键词】单片机;MQ-3气体传感器;酒精检测

近年来酒后驾引起的交通事故越来越受到社会的关注,为此,设计一款智能仪器能够监测出驾驶员体内的酒精含量显得尤为重要。本设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC12C5A16AD对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。该酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。

1.系统整体设计

酒精浓度测试仪是用来测试所处环境中的酒精浓度的,并显示出测试的结果数值,而本设计所做的智能酒精浓度酒精测试仪除具有这个基本功能外,还可通过手动随意设置酒精浓度的阀值,以划定不同环境条件下酒精的安全界限,同时具有报警功能。它主要由酒精传感器、模数转换器、单片机、LCD显示、键盘模块以及报警部分组成。

本设计的酒精浓度测试仪框图如图1所示。MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经AD转换,与设定的醉酒阈值进行比较,并显示或报警。

图1 系统结构框图

2.系统的硬件设计

2.1 整体设计

本设计的酒精浓度测试仪框图如图2所示。MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经AD转换,与设定的醉酒阈值进行比较,并显示或报警。

2.2 单片机及电路设计

本设计选用宏晶公司高性能单片机STC12 C5A16AD,其管脚如图3所示该芯片为52内核8位单片机,内部集成了10位多路A/D转换模块,适用于常用测试电路。

由STC12C5A16AD组成的单片机系统原理图如图3所示。图中AOUT为MQ-3传感器模块输出的测试电压信号,送入ADC7端口进行处理,DOUT为传感器模块输出的数字电平信号,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。

图2 酒精浓度测试仪方框图

图3 单片机系统原理图

图3中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。

2.3 传感器设计

酒精浓度的准确检测是决定该设计成功与否的关键因素,而酒精的检测依靠酒精传感器来实现信号的采集。在本设计中选用灵敏度高、稳定性好的MQ-3气敏传感器。当其表面吸附有被测气体酒精分子时,表面导电电子比例就会发生变化,从而其表面电阻会随着被测气体的浓度的变化而变化。由于这种变化是可逆的,所以能重复使用。MQ-3型气敏传感器灵敏度高,响应速度快,可用于很好的检测净净浓度。

MQ-3乙醇气体传感器及其电路原理如图4所示。经过调试,测试信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。

图4 传感器及调理模块原理图

图5 LCD与单片机接口电路

2.4 显示电路设计

显示部分采用SMC 1602液晶屏进行数据显示,与单片机接口电路如图5所示。其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的7-14引脚为数据引脚。

2.5 阈值存储设计

醉酒阈值存储在EEPROM芯片AT24C01中,并可以通过“增加”、“减少”按键调节并保存。AT24C01是IIC接口的EEPROM芯片,可以用于掉电不易丢失数据的存储。其电路如图7所示。图中A0、A1和A2为芯片的地址引脚,一般接地即可。SCL和SDA为AT24C01和单片机IIC通信的时钟线和数据线。

图6 EEPROM存储电路

2.6 供电及下载电路设计

本设计采用USB接口供电,电源电压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图7所示。

图7 供电及程序下载电路

3.系统的软件设计

3.1 A/D转换的软件实现

A/D转换的软件控制流程如图8所示。

A/D转换的启动必须依靠下降沿触发,在START置低后延时一段时间(约10ms)转换才正式开始.转换过程中的所需输入时钟允许范围为10KHZ~1280KHZ,在本次设计中选用500KHZ,通过定时器产生,转换完成后得到的数字量即为由酒精传感器测试到环境中的酒精含量而产生的电压值,调用数据处理程序从而可得到酒精浓度的真实值。

3.2 阈值设定及显示的软件控制

酒精浓度的阈值设定及显示的具体软件控制流程如图9所示。

当系统进行完初始化后,该测试仪在将测试到的酒精浓度进行A/D转换的同时,还在时刻测试有无外部中断的响应,一旦有按键按下,将会根据按键按下的次数选择酒精浓度表中的酒精浓度值,而且这个值将会立刻被保存于外部存储单元(AT24C08),以便与监测到的环境中的酒精浓度进行比较,完成接下来的报警功能。

3.3 整体软件控制流程

该系统的软件流程图见图10所示。

图10 软件方案总体流程图

图11 酒精浓度测试仪正常工作

该仪器软件程序主要使用C语言编写,采用了模块化结构程序设计方法,包括主程序、中断程序等。系统在开机或者复位后,首先进行初始化、自检,然后进入中断等待,A/D转换,液晶显示三个状态,最终根据所得结果判断是否执行声光报警。中断子程序包括预设阀值、数据存储、信息显示等操作,在进行阀值判断时用到了LM393电压比较器,程序的绝大部分时间处在数据处理上,而单片机在一次处理数据的时间约为6us,故总体的平均功耗低。

4.调试

该测试仪的整体功能实现即由每个模块的分工协作来实现。将程序在Keil编译器中编译成功后,生成HEX文件,然后将程序烧录到单片机中,上电即可进行工作了。上电后该酒精测试仪将按照初始化的程序进行工作,酒精浓度阈值为当初设定的,超过阈值则会产生报警。一旦有设定酒精浓度阈值的按键按下,并且测试按键按下的次数,则酒精浓度的阈值即被重新设定,在没被下一次设定前,实时测试的酒精浓度将与它进行比较,超过该界限值即报警,同时酒精浓度值一直将会显示出来,如图11、12所示。图11是酒精浓度测试仪上电后正常工作时显示的字符。延时2S后自动显示图12上的内容。图12是酒精浓度测试仪正常工作时显示的标准值80mg/L,现场检测到的酒精浓度值20mg/L。

图12 酒精浓度测试仪正常工作

5.结论

本文设计了基于单片机的酒精浓度测试仪,采用模块化设计,结构简单,使用方便。通过软硬件联合调试,实验结果基本满足设计要求,达到设计指标。

参考文献

[1]姚蕾.基于单片机酒精浓度检测仪设计[J].福建电脑,2012,9.

[2]朱志强.基于STC单片机的灵敏酒精检测系统的设计[J].数字技术与应用,2011.

[3]李丽华,黄秋野,王琦.基于单片机的酒精浓度检测仪设计[J].2009,3.

项目来源:江阴职业技术学院大学生实践创新项目(项目编号:GJZY2012-01-06-4)。

作者简介:

赵书红(1982—),女,硕士,讲师,现供职于江阴职业技术学院,主要从事电工电子技术的教学与研究以及电力电子与电力传动的研究。

张健健(1992—),现就读于江阴职业技术学院电子信息工程系。