基于MSP430F149单片机的高精度温箱温度控制系统设计
扫描二维码
随时随地手机看文章
本文针对温箱控制过程中出现的精度低,稳定性差等问题,设计了一种基于MSP430F149单片机的高精度温箱温度控制系统。系统采用铂电阻温度传感器及12位A/D转换器实现了温箱温度精确测量,并利用低功耗MSP430F149单片机及加热和降温系统实现了对温箱温度的精确控制。通过不同温度下测量实验,表明温箱温度控制系统性能稳定可靠。从而在-50~150℃温度范围内,温箱控制精度可以达到±0.5℃。
随着社会的发展,人们对温箱的应用和需求越来越广泛,在工业生产、日常生活和科学实验中,我们随处都可以看到温箱的应用。目前,在温箱的控制过程中还存在一些不足之处,比如控制精度低,稳定性比较差等。因此,针对温箱控制过程中出现的问题,需要设计一个高精度的智能化温箱控制系统,实时地对温箱的温度变化、运行状况和功能状态等进行控制。本文在研究温度采集发展现状和趋势的基础上,设计了一种基于微控制器MSP430F149的温箱控制系统。
本系统以单片机MSP430F149为控制核心,采用铂电阻温度传感器,对温度信号进行测量控制,并实现数码管数字显示,可通过按键对温度进行目标温度值的设置,从而使系统能够根据现场情况,自动启动压缩机或者加热丝,对温箱的实际温度实现自动调节。本系统结构简单、经济性好、实时性强。通过实验证明,系统可以达到高精度的温箱温度采集,实时地显示温箱的温度,准确及时地控制整个系统运行,并具有体积小巧、安全、稳定和可靠等特点,有良好的可扩展性。
1 系统结构框图及其工作原理
系统总体框图如图1所示,由温度传感器、信号调理电路、A/D转换器、键盘、LED数码管、MSP430单片机、电热丝、隔离·驱动、可控硅、压缩机12部分组成。本温箱控制系统采用的主要芯片MCU是单片机MSP430F149。主要的器件有:温度传感器铂电阻芯片、压缩机、加热丝和风扇等。
其工作原理是铂电阻采集到温度信号经过信号调理电路送到A\D转换器进行模数转换,得到的数字信号传送到单片机的控制中心进行处理判断,然后由单片机输出控制信号,经过隔离驱动电路控制可控硅,对加热丝或压缩机进行控制。
2 系统单元电路设计
系统的硬件电路主要由温度采集、温度控制和温度显示三大部分构成。本系统的硬件由单片机MSP430F149、电源电路、温度采集电路、温度控制电路、数码管显示电路等构成。
2.1 电源电路设计
本系统需要使用+5V和+3.3V的直流稳压电源,其中MSP430F149及部分外围电器需要+3.3V电源,其它部分需要+5V电源。在本系统中,以+5V直流电压为输入电压,+3.3V由+5V直接线性降压,其中采用HT7333作为稳压芯片。如图2所示。
2.2 温度传感器采集电路
PT100温度传感器是一种以铂(Pt)制成的电阻式温度传感器,属于正电阻系数,其电阻和温度变化的关系式如下:R=R0(1+aT),其中a=0.00392,R0为100 Ω(在0℃的电阻值),T为摄氏温度。
PT100温度传感器采用四线法的连接方式,有效地消除了引线电阻引起的测量误差,能够精确测量未知电阻上的压降,计算出电阻值。具体连接图如图3所示。
PT100四线法连接电路通常称为Kelvin电路,对于每个测试点都有一条激励线F和一条检测线S,各自构成独立回路,同时要求检测线S必须接到一个有极高输入阻抗的测试回路,使流过检测线S的电流极小,近似为零。图中r表示引线和探针与测试点的接触电阻之和。HF为高电位施加线,LF为低电位施加线,HS为高电位检测线,LS为低电位检测线。由于流过测试回路的电流为零,在r3、r4上的电压降为零,而激励电流I在r1、r2上的压降不响I在被测的铂电阻上的压降,所以可以准确计算出铂电阻的阻值。这样就消除了引线上的电压,实现高精度的温度采集。
单片机MSP430F149的内部具有8路12位精度的模数转换器,带有采样保持功能,通过模数采样读入端口温度电压信号,相应的模数转换公式转化成实际温度数值并存储,然后将温度数值发送到数码管显示出温度。
2.3 温度控制
开始的时候设定好温箱的目标温度值。系统开始进行温度采集,通过外接的铂电阻获得。将采集到的温度和目标温度进行比较,当采集的温度低于目标温度的时候,由控制中心单片机输出控制信号,通过对加热丝进行加热,实现加热操作;当采集的温度高于目标温度的时候,由控制中心单片机输出控制信号,通过控制压缩机,实现降温操作;反复对温度进行测量,比较,这样一直持续,以保证温箱温度被控制在恒温状态以下,以此达到温箱温度控制的目的。具体的操作步骤如下:
2.3.1 加热操作
采集的温箱温度与预设的目标温度进行比较,当所测温度低于目标温度的时候,启动加热操作。加热操作的过程为:
选用的是铁铬铝电热合金类型的加热丝,其平均功率是2000W,额定电压为220V,长度为20cm,由于温箱的大小为1m3,经过计算完成整个温箱的加热过程,从-50℃~150℃需要40min,将加热丝外接在温度控制器电路中,单片机MSP430F149通过P1.1发出控制信号,控制可控硅的通断就可实现加热丝的工作状态,只要改变P1.1的接通时间就能实现加热功能。由于加热丝存在热惯性和时间滞后等特性,为了使控制更加精确,比较温度之后的差值大小采用不同宽度的脉冲进行控制,这样来实现加热丝的加热操作。为了避免造成局部温度过高、受热不均匀,以达到平衡加热的效果,在加热丝的侧面并联一个可控风扇,保证加热过程的均匀受热。加热原理图如图5所示。
2.3.2 降温操作
采集的温箱温度与预设的目标温度进行比较,当所测温度高于目标温度的时候,启动压缩机操作。实现降温操作的过程如下:
MSP430F149通过控制可控硅对压缩机进行控制,实现一个控制压缩机降温系统,根据采集温度与预设目标温度比较差值的大小来决定压缩机的制冷强度。可控硅控制压缩机电路的连接图如图6所示,微控制器P2.2引脚输出可控硅控制信号。当可控硅导通时,压缩机开始工作;否则压缩机停止工作。
2.4数码管显示设计
数码管显示电路也就是数据的输出电路,主要由外接4位数码管、数码管驱动器、锁存器以及片选电路组成,MSP430具有丰富的I/O口资源,采用并行方式与LED连接非常方便。数码管的段码a,b,c,d,e,f,g,dp分别与单片机的P2.0~P2.7相连,控制数码管中显示的字形;数码管的位选由4个NPN三极管控制,分别接到单片机的P6.3~P6.6端口上,程序中通过控制P6.3~P6.6端口的输出电平就可以控制数码管的显示与关闭。
其中LED的片选信号是通过MSP430F149的I/O端口来提供。具体连接图如图7所示。
3 系统软件设计
本文设计的软件部分主要包括实现温度的采集、显示和控制三大部分。
如图8所示,当采集温箱温度的时候,系统通过驱动程序设置好温度传感器的转化公式来实现对温度的采集。当采集的温度低于目标温度的时候,通过对加热丝进行加热,实现加热操作;当采集的温度高于目标温度的时候,通过控制压缩机,实现降温操作;并将温箱的温度显示出来,从而使温箱的温度达到设定的目标值,实现温箱温度控制。
3.1 温度的采集
当将要采集温度数据时,MSP430F149将通过温度传感器采集温度,所用到的函数有:
(1)函数名称:ReadTemp,功能:从温度传感器的ScratchPad读取温度转换结果,返回值:读取的温度数值。
(2)函数名称:uint DolConvert(void),功能:控制温度传感器完成一次温度转换,返回值:测量的温度数值。
3.2 温箱的温度控制
在实现温度控制的时候根据PID控制算法,计算出控制量,具体实现过程中所要用到的部分函数如下:
char Read_Temperature(void)//读取温度
void delay(unsigned char time)//延时时间以12M晶振为准,延时时间为30us×time
void write_bit(unsigned char bitval)//写一位数据子程序
unsigned char read_bit()//读一位数据子程序
void get_temper()//获取温度子程序
unsigned int PIDCalc(struct PID*PP,unsignedint NextPoint)//PID计算
compare_temper()//温度比较处理子程序
void display()//将占空比温度转化为单个字符显示占空比和测得到的温度
3.3 温度的显示
在温度的显示过程中所要用到的函数有:
Void WriteCommand(unsigned char wdata)//向数码管写入命令;
Void WritEDAta(unsigned char wdata)//向数码管写入数据;
显示温度的函数:
WriteDataLCD(0x30+ADC_CH0%1 000/100);//显示百位;
WriteDataLcd(0x30+ADC_CH0%100/10);//显示十位;
WriteDataLcd(0x30+ADC_CH0%10);//显示个位;
WriteDataLcd(0x30+ADC_CH0%1);//显示十分位;
4 结论
基于单片机MSP430F149的温箱温度采集和控制系统是以单片机为核心的软硬件平台的嵌入式系统。通过使用单片机、PT100温度传感器、数码管显示电路搭建硬件平台,使用IAR Embedded Workbench开发环境,C语言编程实现,设计出了一个基于嵌入式技术的温箱温度控制系统。系统体积小巧,电路连接简单,扩展性良好,可以方便地进行后续开发,增加用户所需功能。从而提高了设备的智能化程度,具有较高的工程实用价值。