简介:围绕铂电阻Pt100测温电路设计与调试整理的实战型技术文档,面向从事温度采集、仪器仪表和嵌入式AD采样开发的电子工程师及学生,重点解决非线性校正、接线方式选择与采样电路选型等常见难题。压缩包仅含1个PDF文件,约201KB,以原理图讲解配合调试经验为主,便于随查。目前已有1354人学习下载。文档对两线制、三线制桥式测温电路与恒流源式测温电路分别给出典型电路和测温原理,并结合TL431基准、LM324/LM358运放的具体参数逐条列出调试注意点:同幅度调整R1、R2可改变电桥压差,R5/R3决定放大倍数,放大电路必须接负反馈,恒流源电流不宜超过1mA以免Pt100自发热,基准电源须稳定。作者还给出实测输出公式,指出实际压差明显小于理论值,并说明零点设定与查表校正思路;这些结论均经作者亲自搭板验证,对排查温漂与测量偏差有直接参考价值。
1. 一支 100Ω 的电阻,为什么值得单独做一块板
很多人做温度采集的第一反应,是插一个数字温度传感器,接上单总线读出来就是摄氏度,省事。这种方案在机箱内部或者室温监测里确实够用,但测量对象一旦换到设备柜、管道、烘箱这类中温场景,量程、长期稳定性和抗干扰性这三项指标就开始互相矛盾,数字传感器那点封装和引线很快就不够用了。Pt100 这类铂热电阻能覆盖 -200℃~650℃ 的中温区间,测量准确度高、复现性好、稳定性好,-50~600℃ 范围内优势尤其明显。要把这些纸面上的指标转化成板上真实的读数,前端电路和后面的数据处理必须一起做对,任何一环出问题,读数都会稳定地偏个零点几度,而且不容易查出来。
这套 Pt100 测温电路用三线制接法,覆盖桥式和恒流源两种采样前端,输出可直接送 AD 转换芯片,再配合微处理器做非线性校正和查表。适合做测温类毕设、课设,或者要在项目里补一块温度采集板的场景。
2. 方案选型:三线制、桥式还是恒流源,先展开计算再定
选型这部分最忌讳拍脑袋。同样是 Pt100,接法换一种、采样拓扑换一种,误差来源和调试难度就完全不同。我的习惯是先把导线电阻折算成温度、把信号链上每一级的增益和摆幅都算一遍,前一节的表格能填满,再做板子。
2.1 两线制、三线制、四线制各自抵消了什么
两线制最省线,但引线电阻会直接串进 Pt100 所在的那个桥臂。按常见的 0.5mm² 铜导线估算,每米电阻大约 0.035Ω,来回十米就是 0.7Ω。Pt100 在 0℃ 附近的灵敏度约 0.385Ω/℃,0.7Ω 折算过去接近 1.8℃。这个量级,靠软件补偿是补不干净的,因为引线长度会随现场布线变。所以两线制只适合线很短、精度要求宽松的场合。
三线制的做法是在 Pt100 的一端引一根线,另一端引两根线,把两根等长的引线分别接到电桥的两个相邻桥臂上。电桥平衡时,两侧桥臂上串联的引线电阻同时出现在分子和分母里,一阶项就抵消掉了。三线制能把引线影响从「1.8℃」压到「两臂引线电阻之差对应的温度」,工艺上做到几毫欧的差值,折算下来是几十毫摄氏度。三线制有一个前提:三根线必须等长、同材质、同批次,随便找根线补上,等于没做。
四线制是恒流源激励加独立电压测量,电流回路和电压回路彻底分开,引线电阻理论上完全不进入读数。代价是接线翻倍、端子成本上升,一般只在实验室标准或高精度场合才会用。常规工业测温,三线制是性价比最高的平衡点。
2.2 桥式和恒流源,两种采样前端的取舍
桥式测温的核心,是把 Pt100 的阻值变化转成电桥两个中点之间的毫伏级压差,再放大。典型做法是用 TL431 加电位器产生 4.096V 参考源,R1、R2、VR2、Pt100 构成测量电桥,R1 = R2,VR2 取 100Ω 精密电阻。Pt100 的阻值和 VR2 不相等时,电桥输出压差,经运放差动放大后送 AD。
恒流源式走的是另一条路:用运放把基准电压转换成恒流源,电流流过 Pt100 产生压降,压降只和 Pt100 自身的阻值有关,再经第二级运放放大。原文给的推导很干脆——运放工作在线性区时两个输入端同电位,V+ = V- = 4.096V;设 U1A 输出对地为 Vo,由虚断,(0−V-)/R1 + (Vo−V-)/RPt100 = 0,所以 Pt100 上的压降 VPt100 = Vo − V- = V- × RPt100 / R1。V- 和 R1 都是常数,虚线框里那部分电路等效成一个恒流源,电流大小就是 V-/R1,Pt100 上的压降只随它自己的阻值变。
| 对比项 | 桥式测温 | 恒流源式测温 |
|---|---|---|
| 核心器件 | TL431 + 电桥 + 差动放大 | TL431 + 双运放恒流源 + 同相放大 |
| 输出与阻值关系 | 非线性分压比 | 严格线性 |
| 零点设定 | 靠 VR2 阻值直接定 | 由电流和量程决定,不灵活 |
| 共模电压 | 随温度变化,需要好的共模抑制 | 基本固定 |
| 主要误差源 | 桥臂电阻精度、激励源稳定性 | 基准噪声、自热 |
| 适合场景 | 量程可调、需要零点迁移 | 全量程线性度要求高、量程固定 |
两种电路我都实际做过,都跑得通。选哪个主要看量程:如果测温区间需要经常改、或者需要把零点迁到量程外去(下面会讲为什么),桥式的 VR2 换一个阻值就能搞定,很省事;如果量程固定、追求全段的线性度,恒流源式更好,因为它的非线性全部来自 Pt100 本身,一次查表就处理干净了。
2.3 信号链预算:从 100Ω 到 AD 输入端的毫伏账
这一节才是真正决定板子成不成的地方。以桥式为例,取 R1 = R2 = 10kΩ、VR2 = 92.16Ω、Vref = 4.096V、放大倍数 G = R5/R3 = 100(R3 = R4 = 1kΩ,R5 = R6 = 100kΩ),桥路压差和放大后的输出如下:
| 温度 | Pt100 阻值 | 电桥压差 | 放大后输出 | 12 位 ADC 码值 |
|---|---|---|---|---|
| -20℃ | 92.16Ω | 0 mV | 0 V | 0 |
| 0℃ | 100.00Ω | 3.15 mV | 0.315 V | 315 |
| 50℃ | 119.40Ω | 10.93 mV | 1.093 V | 1093 |
| 100℃ | 138.51Ω | 18.55 mV | 1.855 V | 1855 |
| 150℃ | 157.33Ω | 26.04 mV | 2.604 V | 2604 |
这张表至少要说明三件事。第一,0℃ 到 150℃ 之间,电桥压差总共只有 22.9mV,不放大根本进不了 AD 的有效量程,所以放大级必须要有。第二,放大 100 倍以后,输出摆到 2.6V,在单 5V 供电、运放输出上限约 3.5V 的情况下留足了余量。第三,12 位 AD 配 4.096V 基准时,1 个码刚好 1mV,而 1℃ 对应约 15.3mV,所以理论分辨力约 0.065℃,这个数字是后面验收指标的基础。
注意这里为什么把 VR2 定在 92.16Ω 而不是 100Ω。如果零点就设在 0℃,那么测到 0℃ 以下时电桥压差为负,单 5V 供电的运放输出根本到不了负电压,低温段会直接削平。把零点下移到 -20℃(92.16Ω 正是 Pt100 在 -20℃ 的阻值),整个 0~150℃ 区间就都落在正半轴了。这是一个非常容易被忽略、做出来才发现低温读不出数据的点。
4.096V 这个数字也不是随便取的。12 位 AD 满量程 4096 个码,基准取 4096mV,正好 1mV/码,标定和查表的时候换算最省事,也方便直接在纸上推。
3. 模拟前端实现:4.096V 基准、恒流源与差动放大级的参数校验
模拟这一级的任务只有一个:把一个会随温度变化的电阻,干净地变成一段单调、稳定、可重复的电压。听起来简单,做起来每一步都有坑。
3.1 基准源和电桥怎么搭
基准源用 TL431 加分压网络产生 4.096V,输出经电容滤波后作为电桥正电源。这里有一条硬性要求:电桥的正电源必须接稳定的参考基准,不能直接接 VCC。原因是桥路输出与激励电压成正比,VCC 一旦随电网波动,桥路输出就跟着变;可查表用的温度-电阻表,是在某个特定激励电压下建立的,激励一变,查出来的温度就是错的。这个错不是随机的,是系统性的,同一个传感器在白天和晚上读数不一样,基本就是这个原因。
电桥的两个上臂电阻 R1、R2 必须取同批次、同阻值的精密电阻。R1 和 R2 同幅度调整,可以改变电桥输出的压差幅度:把 R1、R2 从 2kΩ 提到 10kΩ,流过 Pt100 的电流降下来,自热小了,但桥路灵敏度也同步降低,需要更大的放大倍数去补,这是一个明确的取舍。
VR2 用 100Ω 精密电阻时零点在 0℃;换成电位器,调节阻值大小就能改变零点设定。比如把阻值调到 109.885Ω,零点就设在了 25℃。这里有一个必须记住的操作细节:测电位器阻值必须在没有接入电路的时候调,焊进电路后再用万用表量,测到的是并联后的等效阻值,和你调的目标值不是一回事。
3.2 差动放大级:负反馈是硬性要求,不是可选项
差动放大电路的拓扑很经典:R3 = R4、R5 = R6,放大倍数 = R5/R3。R3 和 R5 决定增益,R4 和 R6 负责匹配,四个电阻都要用精密电阻,否则共模抑制比会掉得很快。
这里必须单拎出来说:放大电路必须接成负反馈,否则根本不能正常工作。以前有人特别提醒说只有接成正反馈才能工作,我也没做试验就把它当经验记下了,结果板子做出来直接报废,只能重做。接成正反馈的现象很好认——输出要么卡在电源轨上,要么随输入压差做与正常方向相反的变化。判断方法也很简单:正常工作时电压会随温度升高单调上升,接反了就会单调下降或者直接饱和。
单 5V 供电下,运放选用 LM324 这类通用器件即可,但要注意它的输出不是轨到轨,实际能到的上限大约在 VCC−1.5V 附近。所以在 2.3 节的表里,150℃ 对应 2.604V 是安全的,如果增益再往上加,就要重新算一遍会不会顶到轨。
还有一个反直觉的点:理论上运放输出就是输入压差乘以放大倍数,但实际测量时,输出和输入压差并不是这个关系,实测压差比理论值小很多。真正靠得住的算式是:
Vout_diff = 4.096 × ( RPt100 / (R1 + RPt100) − RVR2 / (R1 + RVR2) )式中电阻值必须取电路工作时实测的值,而不是电阻丝印上的标称值。这条算式是后面查表能不能准的前提。
3.3 恒流源式前端:把电流压在 1mA 以下
恒流源式的第一级用运放把 4.096V 基准转成恒流源,第二级把 Pt100 上的微弱压降放大。下面是一段用来校验参数的脚本,改 R1 和增益就能看到全量程的摆幅:
# 恒流源式 Pt100 前端参数校验 VREF = 4.096 # TL431 产生的基准电压(V) R1 = 5100.0 # 决定恒流大小的电阻(Ω) GAIN = 40.0 # 第二级同相放大倍数 1 + R4/R3 A = 3.9083e-3 B = -5.775e-7 def rpt(t): """Callendar-Van Dusen 简化式,T >= 0 段""" return 100.0 * (1 + A * t + B * t * t) I = VREF / R1 # 恒流源电流(A) print(f"恒流源电流 = {I*1000:.3f} mA") # 需小于 1 mA t_min, t_max = 0.0, 150.0 v_lo = I * rpt(t_min) v_hi = I * rpt(t_max) print(f"{t_min:.0f}℃ 压降 {v_lo*1000:.2f} mV -> 放大后 {v_lo*GAIN:.3f} V") print(f"{t_max:.0f}℃ 压降 {v_hi*1000:.2f} mV -> 放大后 {v_hi*GAIN:.3f} V") print(f"全量程摆幅 {I*(rpt(t_max)-rpt(t_min))*GAIN:.3f} V") print(f"灵敏度 {I*(rpt(t_max)-rpt(t_min))*GAIN/150*1000:.2f} mV/℃") # 自热校验:Pt100 上的功耗 for r1 in (3300.0, 4300.0, 5100.0): i = VREF / r1 print(f"R1={r1:.0f}Ω -> I={i*1000:.3f}mA, 150℃时自热={(i**2)*rpt(150)*1000:.3f} mW")R1 取 5.1kΩ 时,恒流约 0.803mA,150℃ 时 Pt100 上功耗约 0.16mW,温升可以忽略。如果照原文图上的 3.3kΩ 直接用,电流会到 1.24mA,已经超过推荐上限,长时间通电后读数会随自热缓慢往上爬——这个现象在 5.2 节里还会详细展开。
第二级的增益选多大,取决于 AD 的分辨力。按 0.8mA 的电流算,0℃ 到 150℃ 之间 Pt100 上的压降只变化约 46mV;如果增益还是 10,输出只摆 0.46V,太浪费量程。把增益提到 40~50(同相放大,1 + R4/R3,取 R3 = 2
本文还有配套的精品资源,点击获取