现代工程检.docx
- 文档编号:25249173
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:16
- 大小:100.74KB
现代工程检.docx
《现代工程检.docx》由会员分享,可在线阅读,更多相关《现代工程检.docx(16页珍藏版)》请在冰豆网上搜索。
现代工程检
现代工程检测及仪表
班级:
姓名:
学号:
日期:
2013年5月26号
基于Pt100铂电阻的一体化温度变送器
摘 要 目前众多的铂电阻温度变送器,多数采用宽量程调节范围的方式来适应不同测量量程,故此在生产工艺上多选用较大调节范围的电位器,致使温度变送器在环境温度变化的情况下产生零点漂移,为了提高变送器的稳定性和准确度,设计了新的电路,新的程序。
关键词 铂电阻;变送器;电位器;环境温度;零点漂移;低温漂
0前言
温度是表征物体冷热程度的物理量,在工业生产、生活应用和科学研究中是一个非常重要的参数。
在工业控制过程中需要对控制对象进行温度监测,防止控制对象由于温度过高而损坏,因此温度的实时监测就显得更加重要。
对温度的实时监测有利于对控制对象的及时检查、保护,并及时调整温度的高低。
根据控制系统设计要求的不同,温度监测系统的设计也所变化,有采用集成芯片的,也有采用恒流源器件和恒压源器件的。
因铂热电阻具有测量范围大,稳定性好,示值复现性高和耐氧化等优点,该系统采用Pt100铂热电阻作为温度感测元件,进行温度传感器的设计与实现。
在设计中,将电压信号转换为标准的4~20mA电流信号,既省去昂贵的补偿导线,又提高了信号长距离传送过程中的抗干扰能力。
1 Pt100铂热电阻概述
电阻值随温度的变化程度称为温漂系数,大部分金属材料的温漂系数是正数,而且许多纯金属材料的温漂系数在一定温度范围内保持恒定,具体应用中选用哪一种金属材料(铂、铜、镍等)取决于被测温度的范围。
金属铂(Pt)电阻的温度响应特性较好,成本较低,可测量温度较高;它在0℃的额定电阻值是100Ω,是一种标准化器件。
工作温度范围:
-200~+850℃,考虑到工业的实际应用,本系统设计的测量范围为0~120℃。
因为热敏电阻的阻值和温度呈正比关系,只需知道流过该电阻的电流就可以得到与温度成正比的输出电压。
根据已知的电阻温度关系,可以计算出被测量的温度值。
Pt100温度感测器是一种以铂(Pt)做成的电阻式温度检测器,其电阻和温度变化的关系式为:
Rt=R0[1+AT+BT2+C(t-100)T3]
(1)
式中:
R0为0℃下的电阻值,R0=100Ω;T为摄氏温度。
因此,用铂做成的电阻式温度检测器,又称为Pt100温度传感器,即:
A=3.9083×10-3,B=-5.775×10-7,C=0,t≥0℃-4.183×10-12,t<0℃
显然,电阻与温度呈非线性关系,但当测量精度要求较低时,电阻值与温度的函数关系可以简化为[6]:
Rt=R0(1+AT)
(2)
实际应用中,Pt100的连接方式可以为两线制、三线制或四线制。
该系统采用三线制接法即可满足要求。
二线制连接时,由于引线电阻与Pt100串联,增大了电阻,会影响测量;三线制连接时,对Pt100额外增加了第三条线,由于引线电阻具有相同特性,能够对线电阻进行补偿;四线制连接时,可以实现Kelvin检测,消除了两线连线的压差。
2 系统结构与工作原理
对Pt100温度传感器进行了硬件设计,其整个数据采集系统结构框图如图1所示。
图1 系统结构框图
图1中,利用铂热电阻特性来检测温度,将温度转换成电压信号;再通过V/I转换单元,将电压信号转为4~20mA的标准电流信号输出,这样既省去昂贵的补偿导线,又提高了信号长距离传送过程中的抗干扰能力;在单片机系统上再由电流电压转换芯片RCV420将4~20mA转换为0~5V电压信号。
经过A/D转换成数字信号,单片机系统把读取到的数字信号进行识别处理,并换算成与温度对应的数字信号,最后再由液晶显示器显示输出温度值。
CPU主要完成对A/D采集到的数据进行处理,包括A/D值的滤波处理和A/D值向实际温度转换,最后送给显示器显示。
3硬件设计
硬件组成主要由稳定电源电路、运算放大电路、电压电流转换电路、电流电压转换电路四个部分组成。
3.1 稳定电源电路
稳定电源电路如图2所示。
LP2951是SIPEX公司推出的低功耗电压调节
器,非常适用于一些电池供电系统,如无绳电话、无线控制系统及便携式电脑。
具有低静态电流、低压差等特性(轻微负载时,压差为50mV;100mA负载时,压差为380mV)。
LP2951具有很小的初始容限(一般0.5%),非常良好的负载及线路调节特性(一般0.05%),并具有非常低的温度系数(20ppm/℃),因此非常适合用作低功耗电压源。
LP2951可以通过引脚连接到5V电压,使用内部分压器通过引脚1(输出)及引脚2(Sense)及引脚7(反馈)到引脚6(5V端),获得输出、Sense、反馈、5V端电压。
同样,还可以通过1.235V的参考源获得其他输出电压[7],最大30V。
图2 稳定电源(5V)
3.2 主电路分析
R7,R8,R4,RP1和Pt100组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压由LP2951电源芯片来提供。
从电桥获取的差分电压信号通过两级运放放大后,再经过电压/电流转换电路,转换为4~20mA的标准电流信号输出,因为A/D只能采集电压信号,所以在信号进行A/D采集前,再通过芯片RCV420将4~20mA转换为0~5V电压信号。
电桥的一个桥臂采用可调电阻RP1,通过调节RP1,可以调整输入到运放的差分电压信号大小,通常用于调整零点。
放大电路采用LM258集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,其中可调电阻RP2用于调节放大电路的增益。
温度在0~+120℃变化,当温度上升时,Pt100阻值变大,输入放大电路的差分信号变大,放大电路的输出电压对应地升高,输出电流也相应变大。
实际选用的R8阻值比Pt100高很多,因此Pt100阻值变化引起的测量电流变化不大,获得近似恒流法的线性输出。
图3 Pt100主电路
3.3电流电压转换电路
RCV420是美国B2B公司生产的一种精密电流电压变换器,它能将4~20mA的环路电流变换成0~5V的电压输出。
作为一种单片集成电路具有可靠的性能和很低的成本,除具有精密运放和电阻网络外,还集成有10V基准电压源。
在不需要外调整的情况下,可以获得86dB的共模抑制比和40V的共模电压输入,在全量程范围内,输入阻抗仅有1.5V的压降,对于环路电流具有很好的变换能力。
4软件设计
4.1温度传感器液晶显示
#include
#include
#include"18b20.h"
#include"1602.h"
#include"delay.h"
bitReadTempFlag;
sbitLATCH2=P2^7;
voidInit_Timer0(void);
voidUART_Init(void)
{
SCON=0x50;
TMOD|=0x20;
TH1=0xFD;
TR1=1;
//EA=1;
//ES=1;
TI=1;
}
voidmain(void)
{
inttemp;
floattemperature;
chardisplaytemp[16];
LATCH2=1;P0=0x00;LATCH2=0;
LCD_Init();
DelayMs(20);
LCD_Clear();
Init_Timer0();
UART_Init();
Lcd_User_Chr();
LCD_Write_String(0,0,"");
LCD_Write_Char(13,1,0x01);
LCD_Write_Char(14,1,'C');
while
(1)
{
if(ReadTempFlag==1)
{
ReadTempFlag=0;
temp=ReadTemperature();
temperature=(float)temp*0.0625;
sprintf(displaytemp,"Temp%7.3f",temperature)
LCD_Write_String(0,1,displaytemp);
}
}
}
voidInit_Timer0(void)
{
TMOD|=0x01;
TH0=0x00;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
voidTimer0_isr(void)interrupt1
{
staticunsignedintnum;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
num++;
if(num==300)
{
num=0;
ReadTempFlag=1;
}
}
4.2超温报警
#include
#include"18b20.h"
#defineDataPortP0
#defineOVERTEMP60
sbitLATCH1=P2^6;
sbitLATCH2=P2^7;
bitReadTempFlag;
unsigned
charcodeDuanMa[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsignedcharcodeWeiMa[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
unsignedcharTempData[8];
voidDisplay(unsignedcharFirstBit,unsignedcharNum);
voidInit_Timer0(void);
voidmain(void)
{
unsignedintTempH,TempL,temp,j;
for(j=0;j<8;j++)
TempData[j]=0xff;
Init_Timer0();
while
(1)
{
if(ReadTempFlag==1)
{
ReadTempFlag=0;
temp=ReadTemperature();
if(temp&0x8000)
{
TempData[0]=0x40;
temp=~temp;
temp+=1;
}
else
TempData[7]=0xff;
TempH=temp>>4;
TempL=temp&0x0F;
TempL=TempL*6/10;
if(TempH>OVERTEMP)
TempData[7]=0x89;
else
TempData[7]=0xff;
if(TempH/100==0)
TempData[6]=0xff;
else
TempData[6]=DuanMa[TempH/100];
if((TempH/100==0)&&((TempH%100)/10==0))
TempData[5]=0xff;
else
TempData[5]=DuanMa[(TempH%100)/10];
TempData[4]=DuanMa[(TempH%100)%10]&0x7f;
TempData[3]=DuanMa[TempL];
TempData[1]=0xc6;
}
}
}
voidDisplay(unsignedcharFirstBit,unsignedcharNum)
{
staticunsignedchari=0;
DataPort=0xff;
LATCH1=1;
LATCH1=0;
DataPort=WeiMa[i+FirstBit];
LATCH2=1;
LATCH2=0;
DataPort=TempData[i];
LATCH1=1;
LATCH1=0;
i++;
if(i==Num)
i=0;
}
voidInit_Timer0(void)
{
TMOD|=0x01;
TH0=0x00;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
voidTimer0_isr(void)interrupt1
{
staticunsignedintnum;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
Display(0,8);
num++;
if(num==300)
{
num=0;
ReadTempFlag=1;
}
}
4.3温度可调上下线显示
#include
#include
#include"18b20.h"
#include"1602.h"
#include"delay.h"
sbitKeyPorth=P3^2;
sbitKeyPortl=P3^3;
bitReadTempFlag;
sbitLATCH2=P2^7;
voidInit_Timer0(void);
unsignedcharKeyScan(void);
voidUART_Init(void)
{
SCON=0x50;
TMOD|=0x20;
TH1=0xFD;
TR1=1;
EA=1;
ES=1;
TI=1;
}
voidmain(void)
{
inttemp,tempH=50,tempL=1;
floattemperature;
unsignedcharTempFlag=0;
chardisplaytemp[16],num;
LATCH2=1;P0=0x00;LATCH2=0;
LCD_Init();
DelayMs(20);
LCD_Clear();
Init_Timer0();
UART_Init();
Lcd_User_Chr();
while
(1)
{
num=KeyScan();
switch(num)
{
case1:
if(tempH<127)tempH++;break;
case2:
if(tempH>-55)tempH--;break;
case3:
if(tempL<127)tempL++;break;
case4:
if(tempL>-55)tempL--;break;
default:
break;
}
switch(TempFlag)
{
case0:
sprintf(displaytemp,"H.%3dL.%3d",tempH,tempL);
LCD_Write_String(0,1,displaytemp);
break;
case1:
LCD_Write_String(0,1,"overtempH");break;
case2:
LCD_Write_String(0,1,"undertempL");break;
default:
break;
}
if(ReadTempFlag==1)
{
ReadTempFlag=0;
temp=ReadTemperature();
temperature=temp*0.0625;
temp>>=4;
if(temp>tempH)
TempFlag=1;
elseif(temp TempFlag=2; else TempFlag=0; sprintf(displaytemp,"Temp%6.2f",temperature); LCD_Write_String(0,0,displaytemp); LCD_Write_Char(13,0,0x01); LCD_Write_Char(14,0,'C'); } } } voidInit_Timer0(void) { TMOD|=0x01; TH0=0x00; TL0=0x00; EA=1; ET0=1; TR0=1; } voidTimer0_isr(void)interrupt1 { staticunsignedintnum; TH0=(65536-2000)/256; TL0=(65536-2000)%256; num++; if(num==400) { num=0; ReadTempFlag=1; } } unsignedcharKeyScan(void) { unsignedinti=0; if(! KeyPorth) { while(! KeyPorth) { i++;if(i>10)i=11; DelayMs(20); } if(i>10)return2; elsereturn1; } if(! KeyPortl) { while(! KeyPortl) { i++;if(i>10)i=11; DelayMs(20); } if(i>10)return4; elsereturn3; } return0; } 参 考 文 献 [1]何希才,任力颖,杨静.实用传感器接口电路实例[M].北 京: 中国电力出版社,2007. [2]林国汉,王迎旭.基于单片机的温度远程控制系统设计 [J].微计算机信息,2009,25(20): 76277. [3]陈德龙,秦会斌.基于Pt100的电子温度表设计[J].杭州 电子科技大学学报,2005,25(4): 42245. [4]才智,范长胜,杨冬霞.Pt100铂热电阻温度测量系统的设 计[J].现代电子技术,2008,31(20): 1722174. [5]李芸婷,万振凯.Pt100温度传感器数据实时采集系统[J]. 仪器仪表用户,2007,14(5): 24226. [6]北京赛亿凌科技有限公司.铂电阻温度传感器(pdf)[20042 05221].[EB/OL].[20062728].http: //www.bjsailing. com.cn.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 工程
![提示](https://static.bdocx.com/images/bang_tan.gif)