智能仪器 温度测量..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《智能仪器》实验报告
实验项目温度测量
实验时间
同组同学
班级11111
学号1111111
姓名11111
2014年4月
实验二温度测量
一、实验目的
了解常用的集成温度传感器(AD590)基本原理、性能;掌握测温方法以及数据采集和线性标度变换程序的编程方法。
二、实验仪器
智能调节仪、PT100、AD590、温度源、温度传感器模块,传感器实验箱(一);“SMP-201 8051模块”、“SMP-204 块块模块”、“SMP-101 8位A/D模块”、“SMP-401 块块块示模块”。三、实验原理
集成温度传感器AD590是把温敏器件、偏置电路、放大电路及线性化电路集成在同一芯片上的温度传感器。其特点是使用方便、外围电路简单、性能稳定可靠;不足的是测温范围较小、使用环境有一定的限制。AD590能直接给出正比于绝对温度的理想线性输出,在一定温度下,相当于一个恒流源,一般用于-50℃-+150℃之间温度测量。温敏晶体管的集电极电流恒定时,晶体管的基极-发射极电压与温度成线性关系。为克服温敏晶体管U b电压生产时的离散性、均采用了特殊的差分电路。本实验仪采用电流输出型集成温度传感器AD590,在一定温度下,相当于一个恒流源。因此不易受接触电阻、引线电阻、电压噪声的干扰,具有很好的线性特性。AD590的灵敏度(标定系数)为1 A/K,只需要一种+4V~+30V电源(本实验仪用+5V),即可实现温度到电流的线性变换,然后在终端使用一只取样电阻(本实验中为传感器调理电路单元中R2=100Ω)即可实现电流到电压的转换,使用十分方便。电流输出型比电压输出型的测量精度更高。
在实验一的基础上进行电压测量、标定、线性变换,最后显示出对应温度。
图2-1 温度传感器模块原理图
四、实验内容与步骤
1.参考“附录实验PT100温度控制实验”,将温度控制在500C,在另一个温度传感器插孔中插入集成温度传感器AD590。
2.将±15V直流稳压电源接至实验箱(一)上,温度传感器实验模块的输出Uo2接实验台
上直流电压表。
3.按图2-1接线,并将AD590引线的红色端接“温度传感器模块”的a1,蓝色端接“温度传感器模块”的b1,并从实验台上接+5V 电源到a1端。调节RW2大约在中间位置,用实验台上“直流电压表”的20V 档测量“温度传感器模块”的“Uo2”端,再调节电位器Rw1使直流电压表显示为零。
5.按照图将信号引到差动放大器的输入Ui ,记下模块输出Uo2的电压值。
6.升高温度源的温度每隔50C 记下Uo2的输出值。直到温度升至1200C 。并将实验结果填入表2-1。
7.按照实验1的1-5步骤搭建单片机AD 转换电路,将模块输出电压Uo2接入到“SMP-101 8位AD 块块模块”的CH0;
8.编写数据采集程序及标度变换程序,并进行调试,检验程序的测量结果是否与温度源给定的温度一致。(数据采集程序及硬件电路参考“实验一”的结果,线性标度变换公式参考教材中的“标度变换”一节)
五、实验报告
1.由记录的数据数据计算在此范围内整个测温系统的灵敏度,并画出标定出的拟合直线。(端基法)
表2-1 温度与输出电压关系
T Uo2V (℃())38
4552596673801.387 1.419 1.45 1.483 1.515 1.548 1.581
T (℃) 38
45
52
59
66
73
80
87
94
101
108
115
Uo2(V )
1.387 1.419 1.450 1.483 1.515 1.548 1.581 1.612 1.645 1.678 1.710 1.742
2.由表2-1记录的数据计算在此范围内集成温度传感器的非线性误差。
K=(1.742-1.387)/(115-38)=0.0046
所以y=0.0046*x+1.2122
V1=0
V2=0.0002
V3=0.0014
V4=0.0006
V5=0.0008
V6=0
V7=0.0080
V8=0.0004
V9=0.0016
V10=0.0012
V11=0.0010
V12=0
所以最大误差为:0.0016
非线性误差=0.0016/1.742*100%=0.09% 3.画出程序流程图。
开始
初始化AD转换器
结束
4.用c语言编制实验程序。
主程序:
#include
#include
#include "Delay.h"
#include "AD774.h"
//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//-----------------------------------------------------------------------------
sfr16 DP = 0x82; // data pointer
sfr16 TMR3RL = 0x92; // Timer3 reload value
sfr16 TMR3 = 0x94; // Timer3 counter
sfr16 ADC0 = 0xbe; // ADC0 data
sfr16 ADC0GT = 0xc4; // ADC0 greater than window
sfr16 ADC0LT = 0xc6; // ADC0 less than window
sfr16 RCAP2 = 0xca; // Timer2 capture/reload
sfr16 T2 = 0xcc; // Timer2
sfr16 RCAP4 = 0xe4; / Timer4 capture/reload
sfr16 T4 = 0xf4; // Timer4
sfr16 DAC0 = 0xd2; // DAC0 data
sfr16 DAC1 = 0xd5; // DAC1 data
//-----------------------------------------------------------------------------
// Global CONSTANTS
//-----------------------------------------------------------------------------
#define BAUDRATE 115200 // Baud rate of UART in bps
#define SYSCLK 22118400//11059200 // SYSCLK frequency in Hz