在现实生活中,测温装置形式多样,但大多数存在测温范围小的缺点,使其应用范围受到限制。例如:汽车发动机、空调压缩机、轮船等温度往往较高,使用一般的温度计难以测量,使用大型的测温设备不但测量成本高,而且也不易携带。文中设计了一种便于携带,且实用又能适应高温环境的
高温温度计。
高温温度计的原理框图如图1所示。
系统是基于Pt100的高温温度计,Pt100模拟温度传感器对环境温度进行采集,然后把采集的数据经A/D转换后传给单片机,单片机接收数据并处理后,在液晶屏上显示测量的温度值。
1、系统主要硬件设计
1.1电源电路
系统用3节5号干电池串联,电压接近4.5V,刚好满足设计的电源电压要求。电源处理芯片的选择方面考虑的重点是效率高、工作电压低、体积小,经过仔细对比后,选择了以下电源处理芯片。
TL431是一个有良好的热稳定性能的三端可调分流基准源。它的输出电压用两个电阻就可以任意的设置到从Verf2.5~36V范围内的任何值。在本文中用作桥式测温电路的参考电压,还具有多种应用,例如:分流校准器、串联校准器、开关校准器、电压参考等。
在T1431与电源引脚间加上一个100Ω电阻用于限流,地引脚端直接接地,电压输出2.5V接到桥式测温电路作为基准电压,注意基准电压必须稳定,不然会影响测温准确性。
LM1117是具有稳定的电压输出的校准器,可以输出稳定的1.2V,1.5V,1.8V,2.5V,2.85V,3.3V,5V等电压。设计中用LM1117稳压至3.3V为A/D模数转换器、放大器提供稳定的电压保证。在电源和地引脚之间加上电容C4和C5用于去耦滤波。
Intersil公司生产的ICL7660是提供双电压的COMS集成芯片,它在提供正负电压方面有*的优势。ICL7660可以提供+1.5~+10V和-1.5~-10V的正负电压。ICL7660正输出电压Vout+和负输出电压分别接入INA126电源的正负极。电源模块的电路原理如图2所示。
图2中VCC5是电源电压,经过LM1117芯片输出为3.3V,为INA126(仪表放大器)、ADS7816和ICL7660供电。经过TL431输出2.490V的电压,为桥式放大电路和ADS7816提供稳定的基准电压。ICL7660把+3.3V转换为-3.3V,为仪表放大器提供负电压。因为单片机和液晶显示器的工作电压范围广,所以VCC直接和总电源相连。
1.2A/D模数转换模块
因为Pt100是模拟温度传感器,且温度测量范围广,所以设计采用ADS7816,A/D电路图如图3示。管脚VREF接桥式测温电路的基准电压,管脚+IN信号数据输入口接INA126运放的输出端,-IN、GND管脚分别接地。管脚CS片选端接单片机的P1.6口,低电平有效,当P1.6口置低电平时A/D选通,开始工作。管脚Dout信号数据输出口接单片机的P1.5口,用于读取A/D转换后的数据。管脚LOCK时钟信号口接单片机的P1.4口,单片机P1.4口提供A/D连续时钟脉冲,保证A/D数据转换和读取的正常。管脚VCC接经LM1117稳定后的输出电压3.3V。设计采用STC公司的89C52单片机作为核心,在系统中用89C52单片机来读取A/D转换数据并处理,然后控制液晶显示,是设计中所有器件的核心模块。
单片机与A/D连接电路图如图3所示。
1.3显示模块
基于液晶1602显示内容丰富,功耗低等优点,选用液晶1602作为显示模块。液晶的第1管脚是接地管脚,管脚VCC接电源,液晶的管脚VL外接电源串联一个10kΩ的电位器后接地,用来调节液晶的亮度对比度,使其显示清楚、准确。管脚RS接单片机的P1.0口。管脚RW接单片机P1.1。管脚EN接单片机P1.2口,是液晶的使能管脚。液晶的数据口(7~14管脚)接单片机的P0.0~P0.7口,液晶的数据口采用8位并口方式进行数据传送。第15,16管脚是液晶背光灯的正负极,分别接VCC和GND即可。液晶连接电路图如图4所示。
1.4Pt100测温电路
系统的测温模块由两个1kΩ电阻,一个电位器和Pt100组成桥式测温电路。桥式测温原理如图5所示。
电桥的输入电压通过TL431稳压至2.5V,经过测量得到电桥实际输入电压为2.49V。电桥的4个桥臂中的一个桥臂采用电位器,因为通过调解电位器可以调整输入到运放的差分电压信号大小,设计中用此电位器来调整零点。
Pt100数据手册推荐使用LM358芯片放大差分信号,由于LM1117提供给运放的电压只有3.3V,供电电压过低会导致运放工作不正常,电压放大倍数和理论计算的放大倍数误差很大,这样直接导致放大倍数不稳定,影响测温度。经过比较选择发现INA126精密仪器仪放大器,具有高精度,低噪声差分信号采集的优点,它的两个运放设计提供性能具有非常低的静态电流(175mA/chan),结合宽工作电压范围±1.35~±18V的,使其成为高性能的运算放大器。所以改用INA126作为运算放大器,经过测试发现放大倍数稳定。系统中放大倍数约等于6.27倍。由于INA126需要双电源供电,所以使用ICL7660进行电压转换,这样可以轻松得到负电压对INA126进行双电源供电。通过INA126对电桥信号进行差分放大。桥式差分放大电路图如图6所示。
对电位器R6进行零点调整可以得到U_=50.012mV。INA126对U+和U_进行差分放大,放大后电压U0=F×(U+-U_),F是电压放大倍数,经过测量得到F=6.27。所以
这样得到Pt100的电阻值与经过INA126放大后的电压关系,把U0送入A/D,通过A/D转换,单片机算出Pt100的电阻值,然后查表,查到的电阻值与表中的相近时,得出此时的温度值,然后送出数据在液晶屏上显示。
2、软件设计
系统的软件包括温度采集部分、A/D转换模块,接收结果处理显示部分。整个程序采用C语言编写,采用模块化程序设计。
设计采用Pt100模拟温度传感器采集数据,单片机通电后,Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、A/D转换后送入单片机。单片机始终等待A/D转换值的到来,因为本设计只需要测量温度,所以没有采样周期,读取A/D值的程序放入无限循环中。在设计中,由于Pt100的电阻值和温度不成线性关系,所以设计用Matlab拟合函数创建一个电阻值一温度对应表格,查表得到温度值。程序开始后,先对液晶屏、A/D进行初始化处理,然后确定液晶屏在空闲状态,调用液晶写地址指令函数,使液晶屏分两行显示,接着调用液晶写数据函数在第1行写入温度计的英文Thermometer,第2行写入查表得到的温度值。
A/D模块,首先对A/D初始化,然后把A/D的CS管脚、时钟脉冲CLK拉至高电平,接着把CS拉至低电平开始采样。在写程序的时候要注意先发送给A/D两个下降沿脉冲,然后才开始采样数据。实验证明,如果直接进行采样,会导致采样数据误差很大。采样完成后给CS管脚拉至高电平,停止采样,返回数值。接着进行下一组数据的采样。主程序流程图如图7所示。
3、系统测试
液晶模块的硬件电路接好后,接通电源,调节与LCD连接的电位器,使液晶显示亮度适中,显示结果与预期结果相同,液晶模块测试正常。开启电源,Pt100开始测温,利用水银温度计做参考,计算Pt100温度测量误差。Pt100温度测量结果如表1所示。
由于设计的温度计精度只有1℃,所以小数点后的温度值都为0,经过测试计算,温度测量的平均误差为2.5%。
4、结束语
在程序模块,开始没有利用查表法,直接用公式进行计算,误差较大。经过不断地修改,发现查表法很好地解决了这个问题,在系统的大范围测温中,这个误差在高温环境下影响不大。系统可以用于高温环境中,测温准确、操作方便、成本低廉,有较高的实用性。还可以经过改善做成无线收发系统,成为远距离测温控制系统。