1 引言
传统的测温系统中,温度信号需要通过A/D转换芯片,转化成数字量之后才能输入到单片机中进行处理。这种测量方法电路较复杂、成本高,需要进行补偿及滤波处理。
本文设计的测温系统采用的测温元件是PT100,其测温范围为-200℃~850℃,是以铂(Pt)作成的电阻式温度传感器,属于正电阻系数。PT100还具有抗振动、稳定性好、准确度高、耐高压等优点[1]。通过控制继电器选择想要测量的那一路PT100,使其处于恒流源电路中,由于温度不同时PT100的阻值不同,因此处于恒流源中的PT100的两端的电压也随着温度的变化而变化,此电压经过反相电路、V/F转换电路转换成频率,经单片机对脉冲进行处理后,得到相应的温度值后进行显示和输出。
2 硬件设计
系统硬件电路由温度测量选择电路、恒流源电路、V/F转换电路、单片机控制电路、显示电路以及通讯电路组成。其框图如图1所示。温度信号经恒流源转换成电信号后,经V/F转换电路输入到单片机中,进行处理后输出显示、通讯,通讯波特率、显示第几路温度、温度循环显示周期等设置工作由键盘完成。
通过电位器可将三端可调分流基准源TL431的输出电压控制在2.5V到36V之间的任何值[2],输出电压经过运算放大器LM358后,作为三极管的启动电源,使得三极管导通,三极管的发射极接某一路PT100,这样流过PT100的电流值是恒定的。电路图如图2所示。
将PT100两端的电压值,通过芯片LM331转换成脉冲形式,输入到单片机的T0脚,单片机通过读取一定时间内输入到计数器0的脉冲数来确定脉冲的频率,从而得出PT100两端的电压值,进一步通过查表可以计算出温度值。V/F转换电路见图3。这里注意,由于LM331的输入电压范围是-10V~0V,因而在LM331前要加一个反相器,将PT100两端电压转换成负值,并根据要测量的温度的范围,调节图2中的电位器R82,使得恒流源电路的电流处于合适的范围内,使得V/F转换电路的输入电压不能超出-10V~0V的范围。
本设计是搜集八路温度值,进行输出显示及其他操作,在八路切换上采用的是单片机控制138译码器[3],来选择某一路继电器吸合,由于138驱动能力不足以驱动继电器,因而在138后加一片ULN2003起到提高其驱动能力的作用,如图4所示,图中为了简便只画出了其中的一路。
以上是硬件电路中的主要电路图,其他电路如单片机最小电路、通讯电路、数码管显示电路等,都能在网上及期刊中找到标准电路,因此这里不再做赘述。
3 软件设计
本系统采用ATMEL公司的AT89C52单片机作为主控制器,其有两个定时/计数器,一个串口中断。当温度为0℃时,PT100温度传感器电阻值为100欧姆,温度每增加一度,电阻值增加0.39欧姆,因此,在恒流源电路中,PT100两端电压随着PT100阻值的增加而呈线性增加,同样经过V/F转换后的脉冲频率也随之变大,通过单片机的定时和计数功能可以计算出一定时间内的脉冲数,从而计算出PT100的阻值,实际温度也就可以通过查表的方法计算出来了。程序流程图见图5。
程序使用C语言开发完成,通讯采用串口通讯,通过键盘控制通讯的波特率大小。在软件设计上,数码管显示程序、串口通讯程序都是较常见的,十分简单。本系统软件较复杂的地方在于定时和计数部分,将定时/计数器1设置成定时功能,用于设定隔多长时间读取下一路温度。将定时/计数器0设置成计数功能,用于计数在定时器1的定时时间内的脉冲数。下图为定时器1中断子程序:
系统定时/计数器1定时时基为25ms,当中断连续发生5次,即125ms时,对定时/计数器0读数一次,通过计算即可得出脉冲频率值,因此温度值也就可求了。为了简便,可以通过实验,将频率值与温度值的关系做成表格,当得出频率值后就不必通过计算得出温度值,可直接通过查表得到实际的温度值。
4 结束语
本设计采用由LM331组成的V/F转换电路和单片机构成测温系统,比传统的温度测量电路简单,已经在中频炉中广泛应用,有较精准的测量效果。还可广泛应用于各种其他温度测量系统中。本设计由于横流源的引入,使得该系统通过调节电位器即可改变V/F转换电路的输入电压值,而不必担心由于频率过大致使单片机计数溢出的问题。
由于单片机的引入,使得系统程序简单化。在增加了系统的通讯功能的同时,还可在需要时将系统扩展成温度可控的。
参考文献:
[1] 陈宜建.基于555时基电路的测温系统设计[J].信息化研究,2009,35(4):35-37.
[2] 热电阻PT100测温电路调试体会http://wenku.baidu.com/view/dcb4a91614791711cc7917a3.html.
[3] 徐维祥,刘旭敏.单片微型机原理及应用[M].大连:大连理工大学出版社,2003.
作者简介:夏本源(1968-),男,中专,工程师,研究方向:水温水位流量观测,年径流量计算等。