使用PT100温度测量(阻值转PWM)
引言
在做智能家居的项目中,经常会遇到对温度的测量,温度是自然界中一个最要的物理参数。无论是在各种实验场所,还是居住休闲场所,还是工业生产场所,温度的采集和控制都十分频繁和重要。所以温度传感器便显得十分重要,PT100便是其中一员。
PT100是一种正温度系数的热敏电阻。【随着温度的升高,电阻的阻值变大,就是正温度系数的热敏电阻,相反,如果随着温度的升高,电阻的阻值变小,就是负温度系数的热敏电阻。】PT100热电阻因制造的工艺不同,其测温范围亦有不同,陶瓷铂热电阻,可以测量的温度范围最广,-200~800℃,现在已经可以到-250~850℃。云母铂热电阻,由于云母的特性,其测温范围是-200~420℃。薄膜铂热电阻由于其封装及制造特性,其测温范围是-50~500℃。
PT100之所以应用很广泛,不仅是因为它可以测的温度范围宽(零下几十度到零上几百度),还因为它的线性度非常好。“线性度”,说的直白一点就是温度每变化一度,电阻的阻值升高的幅度是基本相同的。由于PT100热电阻的温度与阻值之间的关系,人们便利用它的这一特性用来测量温度。
- PT100常规测量方法
常规使用PT100测量温度基本原理是,电流流过PT100,输出电压然后使用ADC测得电压,因为V=IR,如果电流恒定,则电压与电阻值成正比,从而测得温度。例如网上常见的一个P100电压采集放大电路:
该电路输出的电压范围为0.3-3.3V。前半部分是4.096V恒压源电路,然后是一个桥式电压采样电路,后面是一个电压放大电路。电桥电压为TL431产生的基准电压4.096V。R9和R10作为电桥的两臂,电桥输入送到由运放组成的放大电路中,经过放大后输出电压值由单片机检测。
但是这种方法有诸多限制,比如TL431精度,运放温漂,运放放大倍数的调节用以适应3.3V单片机和5V单片机,以及单片机ADC采集精度等,都会造成对温度测量的误差。
2. 通过频率测量温度的方法
现在提出一种新的测量方法,设计了一种电路让输出频率与电阻值成正比关系,即F=KR(式中F为频率,K为常数,R为电阻值),通过测量频率从而得到PT100的阻值,根据阻值与温度的关系最终测得温度,而对频率的测量只需要单片机有定时器和中断即可,而这是单片机基本上都有的资源(采用ADC测量受限于有的单片机不一定有ADC)。
该测量电路如下:
该电路优点:RC振荡电路将模拟量阻值转换为数字量频率(周期)、不使用AD口、无需放大电路、成本低廉、实用性强。
测量原理:
电路是一个由LM393(U2-A)组成的RC振荡器。LM393 是一款双电压比较器集成电路。电压比较器的功能是用于比较两个电压的大小,其特性如下:
①当“+”同向输入端电压高于“-”反向输入端时,电压比较器输出为高电平;
②当“+”同向输入端电压低于“-”反向输入端时,电压比较器输出为低电平。
由单片机测量RC震荡回路的频率f,然后根据标准电容C1【原理图中的C45】得出PT100的阻值R1。
该电路工作过程如下:
上电后LM393引脚1电平V1=Vcc,引脚3电平
引脚2电平初始为0,上电后V3>V2,所以PIN1电平V1为高电平。V1通过R1给C45充电逐渐升高,当引脚2电平V2大于引脚3电平V3,引脚1电平变为低电平,引脚3电平:
引脚1电平变为低电平之后,引脚2电平V2由电容C45通过R1开始放电。当引脚2电平V2放电到小于引脚3电平V3,引脚1电平变为Vcc。由此,往复循环形成振荡输出一个周期性的方波。
根据RC充放电工作计算可得,占空比Duty Ratio
周期T
即,该电路输出的是一个周期为1.386RC,占空比为50%的方波。测量时选用容值固定精度较高的标称电容,由此测得周期与PT100的阻值成正相关,从而得到温度。
3. 实测波形
LM393 PIN2实测波形
LM393 PIN3实测波形
LM393 PIN1实测波形(输出波形),注意这个引脚接单片机带中断功能的IO口。
PIN1(蓝线)和PIN2(黄线)实测波形。与分析相合,PIN2为一个指数波形。幅值约为输出的1/3到2/3。
PIN1(蓝线)和PIN3(黄线)实测波形。PIN3幅值约为PIN1输出的1/3到2/3。
评论区提问有说到精度问题,可参阅如下这个网页:
High-res Cap meter by RomanBlack
参考:
漫谈PT100测温电路经验