解决方案

The solution

PT100温度传感器的应用

        PT100温度传感器这是一种稳定性和线性都比较好的铂丝热电阻传感器,可以工作在 -200℃ 至 850℃ 的范围.本电路选择其工作在 -19℃ 至 500℃ 范围.整个电路分为两部分,一是传感器前置放大电路,一是单片机 A/D 转换和显示,控制,软件非线性校正等部分.


前置放大部分原理图如下:


 bfa49a78a1bdaeed3d0783846ecd6433.jpg


 

工作原理:


           传感器的接入非常简单,从系统的 5V 供电端仅仅通过一支 3K92 的电阻就连接到 PT100 了.这种接法通常会引起严重的非线性问题,但是.由于有了单片机的软件校正作为后盾,因此就简化了传感器的接入方式.

按照 PT100 的参数,其在 0℃ 到 500℃ 的区间内,电阻值为 100 至 280.9Ω,我们按照其串联分压的揭发,使用公式:Vcc/(PT100+3K92)* PT100 = 输出电压(mV),可以计算出其在整百℃时的输出电压,见下面的表格:


温度 ℃

PT100 阻值 Ω

传感两端电压 mV

0

100.00

124.38

1

100.39

124.8

50

119.40

147.79

100

138.51

170.64

150

157.33

192.93

200

175.86

214.68

250

194.10

235.90

300

212.05

256.59

350

229.72

276.79

400

247.09

296.48

450

264.18

315.69

500

280.98

334.42


           单片机的 10 位 A/D 在满度量程下,*显示为 1023 字,为了得到 PT100 传感器输出电压在显示 500 字时的单片机 A/D 转换输入电压,必须对传感器的原始输出电压进行放大,计算公式为:(500/1023 * Vcc)/传感器两端电压( mV/℃ ) ,(Vcc=系统供电=5V),可以得到放大倍数为 10.466 。
 

关于放大倍数的说明:

           有热心的用户朋友询问,按照 (500/1023 * Vcc)/传感器两端电压不能得到 10.466 的结果,而是得到 11.635的结果。实际上,500 个字的理想值是无法靠电路本身自然得到的,自然得到的数字仅仅为 450 个字,因此,公式中的 500℃ 在实际计算时的取值是 450 而不是 500 。450/1023*5/(0.33442-0.12438)≈10.47 。其实,计算的方法有多种,关键是要按照传感器的 mV/℃ 为依据而不是以被测温度值为依据,我们看看加上非线性校正系数:10.47*1.1117=11.639499 ,这样,热心朋友的计算结果就吻合了。运算放大器分为两级,后级固定放大 5 倍(原理图中 12K/3K+1=5),前级放大为:10.465922/5=2.0931844 倍,为了防止调整时的元器件及其他偏差,使用了一只精密微调电位器对放大倍数进行细调,可以保证比较准确地调整到所需要的放大倍数(原理图中 10K/(8K2+Rw)+1)。


           通常,在温度测量电路里,都会有一个“调零”和另一个“调满度”电位器,以方便调整传感器在“零度”及“满度”时的正确显示问题。本电路没有采用两只电位器是因为只要“零度”调整准确了,就可以保证整个工作范围的正确显示,当然也包括满度时的*显示问题了。


           那么,电路中对“零度”是如何处理的呢?它是由单片机程序中把这个“零度”数字直接减掉就是了,在整个工作范围内,程序都会自动减掉“零度”值之后再作为有效数值来使用。当供电电压发生偏差后,是否会引起传感器输入的变化进而影响准确度呢?供电变化后,必然引起流过传感器的电流发生变化,也就会使传感器输出电压发生变化。可是,以此同时,单片机的供电也是在同步地接受到这种供电变化的,当单片机的 A/D 基准使用供电电压时,就意味着测量基准也在同步同方向发生变化,因此,只要参数选择得当,系统供电的变化在 20% 之内时,就不会影响测量的准确度。(通常单片机系统并不允许供电有过大的变化,这不仅仅是在温度测量电路中的要求。)
 

后级单片机电路的原理图如下:


 489827f8af92543a53064623548f3335.jpg

 

           从传感器前置放大电路输出的信号,就送入到 HT46R23 的 A/D 转换输入端口(PB0/AN0),由单片机去进行各种必需的处理。首先是进行软件非线性校正,把输入信号按照不同的温度值划分为不同段,再根据其所在的段分别乘以不同的补偿系数,令其与理论值尽量接近,经过非线性校正的数字,才被送去进行显示,比较用户设定的控制值等等。


           各段的非线性补偿系数见下列表格(仅仅列出主要段的数据,非全部表格内容):

传感电压


传感电压

mV/℃

内部AD读数

校正系数

124.3781

供电电阻=3K92±1%,供电电压=5.000V±1%

124.8450

0.4670

1.00

1.0000

147.7942

0.4683

50.14

0.9972

170.6414

0.4626

99.06

1.0095

192.9326

0.4570

146.80

1.0218

214.6802

0.4515

193.36

1.0343

235.8961

0.4461

238.79

1.0469

256.5918

0.4407

283.11

1.0597

276.7898

0.4355

326.36

1.0724

296.4779

0.4302

368.52

1.0854

315.6891

0.4251

409.65

1.0985

334.4220

0.4201

449.76

1.1117

 

           本电路还有一个特点,就是用户可以在工作范围内,任意设定 3 个超限控制值。当测量显示值大于设定值的时候,对应的控制端口就会输出高电平。利用这个高电平信号,再外接一级三极管驱动继电器的电路,就可以实现自动控制。在某一个控制端口输出高电平的同时,与之串联的 LED 发光管会同时点亮,以便提示使用者是哪一个设定值在输出控制信号。电路中的 24C02 是电存储器,可以把使用者设定的控制值可靠地保存起来,即使掉电也不会丢失数据。


           电路图中还有 3 只按键,它们分别是“设定”、“加置数”和“减置数”操作按键,用于使用者进行超限值的设置。使用方法如下:


           按动一下设定键,屏幕显示“1--”,表示现在进入*个超限值的设置,三秒后屏幕自动跳转到显示“***”并闪烁(*** 代表原来电存储器里储存的超限数值),然后,按压加数键(或减数键),屏幕上的*位的数字就会加一(或减一),如果按住按键三秒以上不放开,屏幕上的前两位数字就会快速进行加数(或减数)。把屏幕上的数字调整到所需要的数字后,这个超限值就设置完成了。


           接着,再按动一下设定键屏幕显示“2--”,表示现在进入第二个超限值的设置,三秒后屏幕自动跳转到显示“***”并闪烁....,接下来的操作与*个超限值的操作完全一样。第三个超限值的设置与上面两个完全一样。当设置好 3 个超限值之后,还必须*按动一下设定键,退出设定状态而返回正常工作状态。如果忘记了这*一次按动退出的操作,程序就会等待 10 秒之后,自动返回正常工作状态。


简易调试方法:

           可以使用 100Ω 的电阻来模拟 PT100 在 0℃ 的阻值,接入传感器输入端,看看显示是否 =000,如果不对,可以调整微调电位器来达到;然后用一只 281Ω 的电阻来模拟 PT100 在 500℃ 时传感器的电阻值,显示应该在 500 字±1字;*,使用一只 194Ω 的电阻来代替 250℃ 传感器电阻输入,应该显示 250±1 字.如果经过上面调试没有问题,就可以接入真正的 PT100 传感器投入使用了。(真正的传感器也有误差,可以微调一下前置放大的电位器来校正它。)


           在实际工作中,要求电路的供电电压为 5V±5%.如果测量显示值大于某一个超限值,对应的控制端口就会立即输出高电平。如果传感器发生开路故障,显示就会出现"HHH",如果传感器及其引线发生了短路,显示就会立即出现"LLL".为了防止传感器出现开路或者短路之后可能会引起的不良后果,这时候,3 个控制输出端口都会优先关闭。


Technical Support: CLOUD | Admin Login
seo seo