文档介绍:PT100 温度传感器测量电路温度传感器 PT10 0 是一种稳定性和线性都比较好的铂丝热电阻传感器, 可以工作在-200 ℃至 650 ℃的范围. 本电路选择其工作在-19 ℃至 500 ℃范围。整个电路分为两部分, 一是传感器前置放大电路, 一是单片机 A/D 转换和显示, 控制, 软件非线性校正等部分。前置放大部分原理图如下: 工作原理: 传感器的接入非常简单, 从系统的 5V 供电端仅仅通过一支 3K92 的电阻就连接到 PT100 了. 这种接法通常会引起严重的非线性问题, 但是. 由于有了单片机的软件校正作为后盾, 因此就简化了传感器的接入方式. 按照 PT100 的参数, 其在 0℃到 500 ℃的区间内, 电阻值为 100 至 Ω, 我们按照其串联分压的揭发, 使用公式: Vcc/(PT100+3K92 )* PT100 = 输出电压( mV), 可以计算出其在整百℃时的输出电压, 见下面的表格: 温度℃ PT100 阻值Ω传感两端电压 mV 0 1 50 100 150 200 250 300 350 400 450 500 单片机的 10位 A/D 在满度量程下, 最大显示为 1023 字, 为了得到 PT100 传感器输出电压在显示 500 字时的单片机 A/D 转换输入电压,必须对传感器的原始输出电压进行放大,计算公式为: (500/1023 * Vcc)/ 传感器两端电压( mV/ ℃) ,( Vcc =系统供电= 5V ),可以得到放大倍数为 。关于放大倍数的说明:有热心的用户朋友询问,按照(500/1023 * Vcc)/ 传感器两端电压不能得到 的结果, 而是得到 的结果。实际上, 500 个字的理想值是无法靠电路本身自然得到的,自然得到的数字仅仅为 450 个字,因此,公式中的 500 ℃在实际计算时的取值是 450 而不是 500 。 450/1023*5/(-) ≈ 。其实, 计算的方法有多种, 关键是要按照传感器的 mV/ ℃为依据而不是以被测温度值为依据,我们看看加上非线性校正系数: *= ,这样,热心朋友的计算结果就吻合了。运算放大器分为两级, 后级固定放大 5倍( 原理图中 12K/3K+1=5 ), 前级放大为: = 倍, 为了防止调整时的元器件及其他偏差,使用了一只精密微调电位器对放大倍数进行细调,可以保证比较准确地调整到所需要的放大倍数( 原理图中 10K/(8K2+Rw)+1) 。通常,在温度测量电路里,都会有一个“调零”和另一个“调满度”电位器,以方便调整传感器在“零度”及“满度”时的正确显示问题。本电路没有采用两只电位器是因为只要“零度”调整准确了,就可以保证整个工作范围的正确显示,当然也包括满度时的最大显示问题了。那么,电路中对“零度”是如何处理的呢?它是由单片机程序中把这个“零度”数字直接减掉就是了,在整个工作范围内,程序都会自动减掉“零度”值之后再作为有效数值来使用。当供电电压发生偏差后,是否会引起传感器输入的变化进而影响准确度呢?供电变化后,必然引起流过传感器的电流发生变化,也就会使传感器输出电压发生变化。可是,以此同时,单片机的供电也是在同步地接受到这种供电变化的, 当单片机的 A/D 基准使用供电电压时, 就意味着测量基准也在同步同方向发生变化,因此,只要参数选择得当,系统供电的变化在 20% 之内时,就不会影响测量的准确度。( 通常单片机系统并不允许供电有过大的变化,这不仅仅是在温度测量电路中的要求。) 后级单片机电路的原理图如下: 从传感器前置放大电路输出的信号,就送入到 HT46R23 的A/D 转换输入端口(PB0/AN0 ),由单片机去进行各种必需的处理。首先是进行软件非线性校正,把输入信号按照不同的温度值划分为不同段,再根据其所在的段分别乘以不同的补偿系数,令其与理论值尽量接近,经过非线性校正的数字,才被送去进行显示,比较用户设定的控制值等等。各段的非线性补偿系数见下列表格(仅仅列出主要段的数据,非全部表格内容) : 传感电压 mV/ ℃内部AD读数校正系数 供电电阻=3K92 ± 1%, 供电电压= ± 1% 124