实验温度传感器综合测量
一、实验目的
1、学习MSP430G2553单片机内部ADC10和定时器的使用方法。
2、熟悉DS18B20和LM35温度传感器的原理和使用方法。
3、掌握PT100测温的原理和方法。
二、实验设备
LaunchPad开发板、温度传感器综合测量模块、MSP430实验底板、PC机、CCS开发工具。
三、实验原理
1、ADC10和定时器在本实验的应用
ADC10 是MSP430单片机的片上模数转换器,转换位数为10比特。ADC10的最大转换速率大于 200kHz ,转换精度为 10位,其转换时钟源可选择,编程可选择片上电压参考源(2.5V 或者1.5V )。在MSP430 的ADC10上有 15个通道,其中有8 个外部输入通道,还有对内部温度传感器采样通道(通道10)。ADC10有多种采样模式,分别为单通道采样、重复单通道采样、顺序采样和重复顺序采样。
本实验ADC10设置成多次连续采样模式,基准电压1.5V,ADC10开中断,ADC10SC触发采集,采样从通道10到通道0顺序采样,然后再回到通道10。这样每当ADC10对一个通道完成一次采样,将触发一次中断,在中断中我们将采样值ADC10MEM读出。
定时器TA1在本实验中主要完成对ADC10采样间隔的设置。由于ADC10连续采样从一个通道跳到另一个通道需要ADC10SC触发采集,既运行ADC10CTL0 |= ADC10SC+ENC,因此我们利用TA1计数中断可实现对采样间隔的设置,TA1每中断一次则进行一次ADC10SC触发采集。
定时器TA1计数中断的原理:每个时钟周期计数值TA1R加1,当TA1R超过寄存器TA1CCR0中的数值时触发一次中断。我们往寄存器TA1CCR0写入0~65535中的一个数字,根据TA1选用的时钟源,我们可以算出每两次中断间的时间间隔,从而可完成对ADC10采样间隔的设置。
2、DS18B20测温
DS18B20 数字温度传感器提供9位至12位温度测量, 并有报警功能,和非易失性用户可编程上下限触发点。DS18B20 通过一线制总线通讯,按照定义只需一根数据线(和地)与中央微处理器通讯。工作温度范围为-55°C到+125°C,在-10°C到+85°C 精确至±0.5°C 。另外, DS18B20可直接从数据线获取电源(寄生供电),无需外部电源供电。DS18B20在750ms ( 最大值) 内温度转换成12位数位字,将数据存入温度寄存器。
每个DS18B20 都有一个独一无二的64位序列编码,允许多个DS18B20 工作在同一一线制总线。因此,用一个微处理器控制分布在大面积内的多个 DS18B20很简单。本实验只对一个DS18B20操作,此部分不做详述。
表1 DS18B20管脚描述
图1 DS18B20的外部供电模式
图2 DS18B20框图
DS18B20的核心功能是它的直接到数字温度传感器。温度传感器的分辨率可以配置成 9,10,11,12位,相应的递增量分别为 0.5°C,0.25°C,0.125°C,和 0.0625°C。加电默认分辨率为 12位。DS18B20加电后处于低功率空闲状态.要开始温度测量和 AD转换,主器件必须发一个转换温度 [44h]命令。转换之后,温度数据结果存储在暂存器中的 2字节温度寄存器中,而且DS18B20恢复到空闲状态。
图3 DS18B20温度寄存器格式
单片机向DS18B20发送命令和从DS18B20的温度寄存器中读取数据都是单片机和DS18B20的通信方式,包括DS18B20复位时序、单片机对DS18B20的读写时序。
(1)DS18B20复位时序
所有与DS18B20 的通讯都以一个初始化序列开始,包括来自主器件的复位脉冲接着是来自DS18B20的存在脉冲,其时序如图4。当DS18B20发送存在信号来回应复位,它向主器件表明自己在总线上并准备好工作。
图4 DS18B20复位时序
在初始化序列期间,总线主器件通过拉低总线至少480μs来发送(TX)复位脉冲。然后主器件释放总线,并进入接收模式(RX)。总线被释放时,5kΩ上拉电阻拉高一线制总线。DS18B20探测到上升沿时,等待 15μs 至 60μs ,然后通过拉低总线60μs 至 240μs 来发送存在脉冲。
(2)单片机对DS18B20的读写时序
图5 DS18B20的读写时序
掌握以上内容后,还必须知道DS18B20的功能命令集合,见下表。
表2 DS18B20功能命令集合
单片机访问DS18B20的执行顺序如下:
步骤1 初始化
步骤2 ROM 命令(接着是所需的数据交换)
步骤3 DS18B20 功能命令(接着是所需的数据交换)
每次访问DS18B20时,遵循这个顺序很重要,如果数序中任何一步丢失或者乱了次序,DS18B20不会回应。对此规则例外的是搜索ROM [F0h]和警报搜索 [ECh]命令。发送完这些ROM命令的任意一个后,主器件必须回到顺序中的步骤1。
本实验的DS18B20为外部供电,单片机对单个DS18B20操作,其操作流程如下:
单片机发送完读暂态寄存器的命令以后,DS18B20温度寄存器中的数据就可以被单片机读取,根据事先设定好的传感器分辨率(默认12位),便可求出当前的温度。例:DS18B20精度设置为12位,温度寄存器中MS为0000 0001(B),LS为1001 0001(B),则当前温度值=0000 0001 1001 0001 *0.0625。
3、LM35测温
LM35是一种得到广泛使用的精密集成温度传感器,其输出电压正比于当前温度(摄氏度),由于它采用内部补偿,所以输出可以从0℃开始。
在常温下,LM35 不需要额外的校准处理即可达到 ±1/4℃的准确率。其电源供应模式有单电源与正负双电源两种,正负双电源的供电模式可提供负温度的量测;两种接法的静止电流-温度关系,在静止温度中自热效应低(0.08℃),单电源模式在25℃下静止电流约50μA,工作电压较宽,可在4—20V的供电电压范围内正常工作非常省电。
工作电压4~30V,在上述电压范围以内,芯片从电源吸收的电流几乎是不变的(约50μA),所以芯片自身几乎没有散热的问题。这么小的电流也使得该芯片在某些应用中特别适合,比如在电池供电的场合中,输出可以由第三个引脚取出,根本无需校准。下图为LM35的经典应用。
这种接法下,LM35供电电压+Vs范围为4V~20V,测量的温度范围为+2℃~+150℃,其输出电压Vout=10.0mV/℃ * T℃,其中T为当前温度。因此只要通过ADC10测得LM35输出电压,即可算出当前的温度值。
4、PT100测温
pt100是铂热电阻,它的阻值会随着温度的变化而改变。PT100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成近似匀速的增长。但他们之间的关系并不是简单的正比的关系,而更应该趋近于一条抛物线。
铂电阻的阻值随温度的变化而变化的计算公式:
-200<t<0℃ Rt=R0[1+At+Bt+C(t-100)t] (1)
0<t<850℃ Rt=R0(1+At+Bt^2) (2)
Rt为t℃时的电阻值,R0为0℃时的阻值。公式中的A,B,系数为实验测定。这里给出标准的系数:A=3.90802*10-3℃;B=-5.802*10-7℃; C=-4.27350*10-12℃。
本实验在误差容许内,将PT100的阻值与温度值t近似成线性关系,其关系如下:
Rt= R0(1+0.0003851*t) (3)
本实验使恒定电流通过PT100,ADC10对PT100两端电压进行采集,根据公式(3)便可求得当前温度。
使用恒流的方法,要考虑到自热效应,根据元件发热公式P=R*I^2,必须使流过元件的电流足够小才能使其发热量小,传感器才能检测出正确的温度。本实验模块所选用的恒定电流为1mA。
四、实验步骤
1、硬件的安装。液晶的安装,使其带有插针的一端冲下,插入实验板最上面的一排排坐;LaunchPad安装,使其带有USB口的一端冲下,插入实验板标有字符LaunchPad的区域,插针向下对其;模块的安装,使其带有汉字一端冲上,插入实验板右边区域。
2、程序下载。将实验板通过数据线和PC机连接,在PC机上用CCS开发工具打开模块程序,
3、系统的操作。首先,系统上电后,LCD显示菜单的第一页;然后,短按S2,则LCD显示菜单第二页,此时长按S2可设置采样间隔,本系统的采样间隔范围设置为1000us~5000us;设置完采样间隔再短按S2或直接短按S2,此时可长按S2设置采样次数,本系统的采样次数范围设置为10~20次;设置完采样次数再短按S2或直接短按S2,则LCD显示菜单第三页;最后短按S2,LCD显示内容又回到菜单第一页。
4、各个温度传感器的测试。可通过人手接触加热的方式对各个温度传感器进行测试,查看其测试结果变化。
5、记录实验数据。
五、注意事项
将硬件各个部分正确插入实验底板上;程序调试过程中不要按下LaunchPad上的复位按键。
六、实验数据
第二篇:集成温度传感器实验
一、实验目的
1、了解各种温度传感器的测温电路
2、掌握热电偶的冷端补偿
3、掌握热电偶的标定过程
4、了解各种温度传感器的性能特点
二、实验仪器、材料
电脑
三、电路与原理分析
图3是利用两个AD590测量两点温度差的电路。在反馈电阻为100kW的情况下,设1#和2# AD590处的温度分别为t1(℃)和t2(℃),则输出电压为(t1-t2)100mV/℃。图中电位器R2用于调零。电位器R4用于调整运放LF355的增益。
图3 测量两点温度差的电路
由基尔霍夫电流定律: I+I2=I1+I3+I4 (1)
由运算放大器的特性知:I3=0 (2)
(3)
调节调零电位器R2使:I4=0 (4)
由(1)、(2)、(4)可得:I=I1-I2
设:R4=90kW
则有:VO = I(R3+R4) = (I1-I2) (R3+R4) =(t1-t2)100mV/℃ (5)
其中,(t1-t2)为温度差,单位为℃。
由式(5)知,改变(R3+R4)的值可以改变VO的大小。
四、读取步骤
读取数显表值,将结果填入下表:
由于我们使用的是AD590温度集成模块,里面已经设置有如下关系:273+t=I (t为AD590设定温度),因此可得测量温度与设定温度对照表如下:
五、实验中应注意的事项
1、加热器温度不能太高,控制在120℃以下,否则将可能损坏加热器。
2、采用放大电路测量时注意要调零。
3、在测量AD590时,不要将AD590的+、-端接反,因为反向电压输出数值是错误的,而且可能击穿AD590。
六、实验总结
从这个实验中使我充分认识了AD590。学会了如何制作简单的温度计,也意识到了这些电阻由于会随温度而改变可以利用这一点来制作温度开关,通过温度的变化而使开关自动化。