一种简易实用的数字温度计的设计

2011-01-18 05:46贾进滢田奔辉
关键词:温度计阻值单片机

徐 建,贾进滢,田奔辉

(湖北民族学院 信息工程学院,湖北 恩施 445000)

随着人们生活水平的不断提高,温度测量在人们的日常生活和生产中起着越来越重要的作用,尤其是在工业的温度测量中,对测量精度的要求越来越高.但由于温度测量具有工况复杂、参数多变等特点,在实际测量中,温度测量的精度很难提高.本设计采用Atmega16单片机作为主控芯片,包括测温模块、数据处理模块、显示模块等组成,电路结构简单典型、成本低、测量精度高.

图1 系统原理框图Fig.1 System principle diagram

1 数字温度计的系统设计

系统由温度采集,信号滤波、放大,AD转换,数码显示等模块组成,系统原理框图如图1所示.外界温度的变化引起铂电阻阻值的变化,其两端的电压值随之发生改变,该信号经滤波、放大后,通过电压跟随器输入Atmega16单片机进行处理后,输出温度值并显示在数码管上[1-2].

2 数字温度计的硬件设计

2.1 铂电阻温度传感器Pt100

PT100是铂热电阻,它的阻值会随着温度的变化而改变.PT后的100即表示它在0℃时阻值为100 Ω,在100℃时其的阻值约为138.5 Ω.PT100在0℃的时候它的阻值为100 Ω,它的阻值会随着温度上升以0.385的变化率匀速增长.铂电阻传感器精度高,稳定性好,应用于温度测量范围广,是目前精度最高的温度传感器[3-5].

图2 信号采集、处理电路图Fig.2 Signal acquisition and processing circuit diagram

图3 数码显示电路图Fig.3 Number display circuit diagram

图4 程序流程图Fig.4 Program flow chart

2.2 Atmega16单片机介绍及特点

Atmega16单片机是具有16 KB系统内可编程 Flash的8位微控制器,ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器.由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾[6].

ATmega16有8路10位具有可选差分输入级可编程增益的ADC,在ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声.

2.3 信号采集、处理电路

采集的信号经图2所示电路滤波、放大后输入单片机,由Atmega16单片机内置10位AD对输入的信号进行转换,经过数字滤波和算法处理并将结果输出显示.

2.4 数码显示电路

用五位7段数码管显示温度值,结果保留1位小数.Atmega16单片机端口带负载能力有限,本设计中对端口输出信号通过74LS273锁存后再经三极管驱动数码管显示温度值.

3 数字温度计的软件设计

系统采用C语言进行软件设计,编程和调试环境为AvrStudio4.0.程序流程图如图3所示.系统初始化主要是初始化单片机的各个寄存器,设置合适参数,为温度采集做准备工作.数字滤波主要是对外界的噪音信号进行滤除,提高系统的测量精度.接着应用相关算法,对采样的温度数据进行相应的处理.最后通过74LS273锁存器输出、显示温度数值.

4 数据处理

系统数据的处理分为数字滤波以及电阻的非线性化处理两部分,即在输入单片机ADC转换引脚之前测出相应铂电阻相对应的电势,然后根据测得的数据转化为实际相对应的温度值.

4.1 对系统进行零点校正

将第一级运算放大器的输入端接地,在Vout端可以测得输出电压U01=KU0,其中K为运算放大器的闭环增益,U0是折算到运算放大器输入端的电压,通过AVR16内置ADC转换后输出的数字量N01=GKU0,其中G为ADC的转换系数.在单片机进行自动调零时,将采集的数字量减去N01[7].

4.2 对系统进行增益自动校正

将第一级运算放大器的输入端接标准是电压源M0,在Vout端测得输出电压U02=KV0,ADC转换的数字量N02=GK(V0+U0).当第一级运算放大器输入的电压为UX时,通过ADC转换后输出的数字量NX=GK(VX+U0),通过计算可以得到:

由计算表明:系统经过校正后已经消除了运算放大器的零点漂移和增益误差.对系统的高精度提供了有力的保证.

4.3 数字滤波

由于温度变化是缓慢的,在受到外界干扰后,单片机对电信号的采样会有很大的偏差,造成测量的不正确.为了解决这一问题,本设计采用中值滤波法,单片机的内部ADC对温度信号连续采样13次,再将13个采样值从小到大排列,取最中间的值为本次采样转换的结果,这样处理后能有效克服偶然因素引起的噪声对系统测量结果造成的干扰[8].

5 系统测试结果与数据分析

根据本设计的软硬件设计方案,搭建温度测量平台,并对系统进行测试.为了检测系统工作的可靠性及测量结果的准确性,使用算法处理和不使用算法处理分别测试20组数据,如下表1和表2.测试结果表明:在5~85℃内,系统测得的温度值和标准温度计的测值误差小于等于0.5℃,在系统能够承受的误差范围内,达到了预期的测试效果.但经过算法处理后,系统测得的数据要更接近真实值,误差更小,说明算法设计的优越性.

表1 算法处理系统测试数据

表2 没有经过算法处理的测试数据

从表1的数据可以发现系统经过算法处理后测得的数据与真实值是存在大约0.3℃的误差,其主要原因是由于单片机内置ADC转换器是10位的,其分辨率为,这就导致了系统的测量误差的产生.其解决办法是使用外部分辨率较高的ADC转换器,但这样会增加系统成本,在精度要求不是很高的情况下,10位ADC足够了.

6 结语

本系统实现了基于AVR16单片机的温度测量的设计,在硬件部分通过低通滤波器滤除高频噪声造成的干扰,减小原始信号的失真;在软件部分采用数字滤波和校正算法减小测量误差,使得系统能够稳定得工作并且有较高的测量精度.通过测试与标准值的比较,误差较小,符合日常温度检测的要求,有较好的实用价.

[1] 陈德龙,秦会斌.基于Pt100的电子温度表设计[J].杭州电子科技大学学报,2005,25(4):42-45.

[2] 刘海成.AVR单片机原理及测控工程应用[M].北京:北京航空航天大学出版社,2008.

[3] 郑保,成鹏展,张建兰.提高铂电阻温度计测量精度的方法研究[J].计测技术,2006, 26(1):56-59.

[4] 李邕.数字式热敏电阻温度计设计[J].甘肃科技纵横,2008,37(1):15.

[5] 林上金,胡澄,李延标,等.热敏电阻数字温度计设计制作实验的线性化方案探究[J].大学物理实验,2011,24(1):23-25.

[6] 李绍武.基于AVR单片机的风能太阳能控制器设计[J].湖北民族学院学报:自然科学版,2010,28(2):174-176.

[7] Zack Albus.用MSP430设计极低功耗数字温度计[J].世界电子元器件,2003(3):33-34.

[8] 潘烨,王小波,彭昌武.基于STC89C58数字温度计的设计与实现[J].现代电子技术,2009,32(13):109-112.

猜你喜欢
温度计阻值单片机
四线制阻值检测电路实验研究
正确认识温度计
各种各样的温度计
温度计的『一二三』
基于单片机的SPWM控制逆变器的设计与实现
励磁线圈对插入式电磁流量计的影响
三招搞定温度计
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
低电阻碳膜板制作及其阻值的优化