news 2026/10/6 11:08:59

TL431+惠斯登电桥低成本PT100测温方案详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TL431+惠斯登电桥低成本PT100测温方案详解

手上正好在做一批PT100的测温板子,最开始方案选的也是专用ADC芯片,后来算了下BOM成本,再加上实际调试中遇到的基准源稳定性和共模干扰问题,干脆换了个思路:TL431+惠斯登电桥,配合MCU内置ADC,整体精度反而更好。这个方案不算新,但每次分享给同事时都发现还是有不少人习惯于“测温就上高精度ADC芯片”,忽略了前端电桥和基准源的设计才是决定精度的关键。这篇文章就围绕“TL431+电桥搞定PT100测温”这条主线,把电路设计思路、参数计算、实测校验的完整过程拆开来讲,适合正在做工业温度采集、仪表设计或者准备用最低成本实现可靠测温的工程师参考。

1. 为什么用TL431+电桥方案,而不是直接堆ADC芯片

很多搞嵌入式的朋友一提到PT100测温,第一反应就是“选一颗高精度ADC芯片,比如ADS1220、ADS1247之类”,然后把PT100的电阻变化直接接到ADC的模拟输入端。这个思路本身没错,但你在真正设计的时候会发现,整个系统的精度瓶颈往往根本不在ADC的分辨率上,而在前端的基准源、激励方式和信号调理电路。

1.1 高精度ADC芯片方案的痛点

用专用ADC芯片时,通常会给PT100提供一个恒流源激励,然后测PT100两端的电压,再结合ADC的参考电压把电压值转换出来。这时候有两个绕不开的问题:

第一是基准源。ADC的转换精度直接依赖于参考电压VREF的稳定性。很多设计中图省事,直接用3.3V LDO的输出做VREF,但普通LDO的温度系数通常在30~50ppm/°C,温度一变化,参考电压自己就飘了,转换结果自然不准。如果芯片内部有基准还好,否则就得另外加基准源芯片,比如REF5025,一片就要十几块,成本直接上去。

第二是共模干扰。PT100的引线往往要拉到几米甚至几十米外,工业现场电机、变频器一开,线缆上感应出来的共模噪声很大。如果前端不做差分测量,单端采样的结果会被干扰信号直接淹没。专用ADC芯片虽然也带差分输入,但前端激励源和布线上处理不好,同样白搭。

1.2 TL431+电桥方案的核心优势

换到TL431+电桥方案之后,几个痛点刚好被对应解决掉:

  • TL431作为可调精密基准源,输出电压典型值2.5V(不同型号在2.495V~2.5V之间),温漂可以做到30ppm/°C左右,一片才几毛钱,远低于专用基准芯片的成本。
  • 惠斯登电桥天然是差分结构,PT100和参考电阻分别位于电桥的两个桥臂,输出的是差分电压。对于电源波动、线缆感应等共模信号,理论上有很强的抑制能力。
  • 电桥输出的信号量级从几毫伏到上百毫伏,经过一级差分放大器放大之后,完全可以用MCU自带的12位ADC来采样。也就是说,不需要额外的高精度ADC芯片,只要一颗普通运放配合内置ADC就能完成整个链路。

1.3 这个方案适合谁、用在哪些场景

这个方案的定位很明确:适合成本敏感、精度要求中等偏上(0.1~0.5°C级别)、且希望用最少的器件在MCU端完成温度采集的场景。比如温控仪表、变送器、工业数据采集模块、电热设备控制板这类产品。它不适合的量程要求极高(比如±0.01°C)、需要超低温漂、或者需要做高精度计量校准的场景,那种情况下还是老老实实上高精度ADC和专用恒流源吧。

另一个要注意的点是,这个方案本质上是“用电路设计换器件成本”。你需要在电桥的对称性、参考电阻的精度、放大器的失调和温漂上花心思调校,如果对这些底层参数完全不熟悉,直接照搬电路反而容易踩坑。所以下面我把原理和实操一起讲清楚,方便你真正吃透这套方案。

2. 核心原理:PT100、TL431与惠斯登电桥

要真正理解这套方案,不能只停留在“照着接就能用”的层面。PT100的阻值随温度怎么变、TL431在这条链路里到底干什么、电桥是怎么把电阻变化转换成电压的,这三件事是环环相扣的。

2.1 PT100到底怎么测?先搞懂电阻-温度特性

PT100是铂热电阻,0°C时阻值为100Ω。它利用铂金属电阻值随温度升高而增大的特性来测温,测量范围通常在-200°C~850°C,但在工业控制中应用最多的是0~200°C或者0~400°C区间。

根据IEC 60751标准,PT100的阻值-温度关系在0°C以上可以用二次多项式近似:

R(t) = R0 × (1 + A×t + B×t²)

其中R0=100Ω,A=3.9083×10⁻³ /°C,B=-5.775×10⁻⁷ /°C²。带进去算几个典型值:

  • 0°C时,R=100.00Ω
  • 50°C时,R≈119.40Ω
  • 100°C时,R≈138.51Ω
  • 150°C时,R≈157.33Ω
  • 200°C时,R≈175.86Ω

可以看到,温度每升高1°C,阻值大约增加0.385Ω左右。这个变化量在总阻值中的占比非常小,所以直接测单端电压时,有用信号会被很大的直流偏置淹没。这也是为什么必须要用电桥结构来测:它能通过桥臂平衡,把“零温度对应的电压”抵消掉,只放大温度变化引起的差值。

2.2 TL431在电路里扮演什么角色

TL431是一颗三端可调分流基准源,在很多开关电源的反馈电路里都能看到它的身影。它内部的参考电压Vref大约是2.5V(实际为2.495V,不同批次有差异),通过外部两个电阻分压,可以把阴极电压稳定在任意的2.5V以上电压。

在这个测温电路里,TL431最重要的作用是给电桥提供一个稳定的直流激励电压。你可能会有疑问:为什么不用稳压芯片或者直接接电源?原因在于,电桥的输出虽然差分对称,但电源电压的缓慢漂移依然会影响最终测量结果。如果直接用开关电源或LDO输出给电桥供电,其纹波和温漂都会叠加到电桥输出上。TL431本质上是利用内部高增益误差放大器和2.5V带隙基准来稳定输出电压,所以它既不需要外部提供高精度参考,又能对抗输入端电压波动,非常适合给电桥供电用。

典型接法是这样:TL431的阴极串一个限流电阻接到电源正极,参考脚通过两个分压电阻接到阴极输出,调节分压比让输出固定在2.5V。这里的限流电阻需要保证TL431正常工作电流在1mA~100mA范围内。

2.3 惠斯登电桥如何把微小阻值变化变成电压信号

惠斯登电桥是最经典的差分测量结构,四个桥臂电阻接成菱形,两对边接激励电压,另外两个节点输出差分电压。当电桥处于平衡状态(即两桥臂的分压比相等)时,输出为0V;当其中一个桥臂阻值变化时,平衡被打破,输出一个与变化量相关的差分电压。

具体到PT100测量电路,我把电桥设计成如图1所描述的结构:两个上桥臂电阻R1和R2相等,下桥臂分别是精密参考电阻R3和PT100热电阻RT。激励电压VREF由TL431提供。

这样两条分压支路的输出电压分别为:

VA = VREF × R3 / (R1 + R3) VB = VREF × RT / (R2 + RT)

当RT=R3时,VA=VB,差分输出VOUT=VB-VA=0。温度升高后,RT增大,VB随之升高,VOUT就变成随温度单调变化的电压信号。这个电压信号经过差分放大器放大后送给ADC采样,就完成了从电阻变化到数字量的转换。

这种结构的精髓在于,VREF的波动会同时作用于两条支路,在差分输出时大部分被抵消掉。这就是“桥式测量”能抑制电源扰动的根本原因。

3. 完整电路设计与实操

原理理解了之后,下面进入实操环节。我会把完整电路连接关系、元件参数计算、放大和采样链路以及温度换算方法逐一说明。这套电路我在实际项目中已经量产过一批,稳定性和一致性都经得起验证。

3.1 完整电路连接关系(电路图文字版)

因为文章里不好直接贴PCB工程文件,我先把电路的节点连接关系完整列出来,你可以照着这个关系在立创EDA或者Altium里画图:

序号节点名称连接关系
1VREFTL431阴极输出,电压2.5V,接电桥两个上桥臂R1、R2的上端
2V+(电桥正输出)R1下端与参考电阻R3上端的连接点
3V-(电桥负输出)R2下端与PT100上端的连接点
4GNDR3下端、PT100下端、TL431阳极共同接地
5放大器输入V+接仪表放大器同相输入,V-接仪表放大器反相输入
6放大器输出接MCU ADC采样引脚,对地并联100nF滤波电容

TL431供电端:电源正极(比如12V)串一个1kΩ限流电阻R4接到TL431阴极,TL431阳极接地,TL431的REF引脚通过分压电阻连接到阴极和GND。设置输出电压为2.5V时,可以直接把REF接到阴极上,因为TL431内部参考就是2.5V,这样最简单,也避免外部分压电阻引入额外温漂。

关键提醒:R1和R2务必选用精度0.1%、温漂25ppm/°C的金属膜电阻或精密贴片电阻。这两个电阻低于0.1%精度时,电桥的初始不对称会产生一个较大的固定偏置电压,后期全靠软件校准去补偿,补偿起来麻烦不说,温度一变化又会重新漂移。

3.2 关键参数计算与元件选型

我采用的是R1=R2=1kΩ、R3=100Ω精密电阻的组合。为什么这样选?前面算过,如果上桥臂也用10kΩ,电桥在0°C时的共模电压只有约24.75mV,差分信号最大才几毫伏到十几毫伏,对后级放大器的失调电压和噪声要求太高。把上桥臂降到1kΩ后,0°C时两条支路的电压约为227mV,差分信号在0~200°C范围内可以到146mV,信噪比明显改善。

具体参数计算如下:

  • VREF = 2.5V
  • R1=R2=1kΩ,精度0.1%
  • R3=100Ω,精度0.1%,温漂25ppm/°C
  • RT为PT100

0°C时: VA = 2.5 × 100/(1000+100) ≈ 227.27mV VB = 2.5 × 100/(1000+100) ≈ 227.27mV 差值VOUT=0mV

100°C时(RT≈138.51Ω): VB = 2.5 × 138.51/(1000+138.51) ≈ 304.13mV 差值VOUT = 304.13 - 227.27 ≈ 76.86mV

200°C时(RT≈175.86Ω): VB = 2.5 × 175.86/(1000+175.86) ≈ 373.85mV 差值VOUT = 373.85 - 227.27 ≈ 146.58mV

也就是说,在0~200°C测温区间内,电桥差分输出从0mV变化到约146.58mV,平均灵敏度约0.73mV/°C。这个量级对于MCU内置ADC来说还是太小,需要放大。

放大器的选择上,我用的是INA128仪表放大器,增益G=20倍。设置方法是引脚1和引脚8之间接一个外部电阻RG,增益公式为G=1+50kΩ/RG。要得到20倍增益,RG约等于2.63kΩ,实际可取2.7kΩ,实测增益约19.5倍,靠软件标定校准即可。

放大后的电压范围为:

  • 0°C时,约0V
  • 100°C时,约1.50V
  • 200°C时,约2.86V

这个范围正好落在3.3V ADC的输入量程内,且不会触及满量程,留出了约0.44V的余量,有效避免采样饱和。

如果你用的是STM32,ADC参考电压是3.3V,12位分辨率对应的每个LSB约为0.806mV。结合前端约0.73mV/°C×20的灵敏度,温度分辨率理论可达0.055°C/LSB,完全够用。

3.3 从差分信号到MCU ADC:放大与采样

运放选型上,除了INA128,也可以用国产的AD620替代,或者用双通道低失调运放OP07搭建三运放仪表放大器结构。如果温度测量范围不大,用单运放做差分放大也可以,但要注意输入共模电压范围和电阻匹配精度。

PCB布局需要注意的是:

  • 放大器输入走线尽量短,且两条差分线要等长、贴近走,减少差模干扰。
  • TL431输出的2.5V基准线要走粗一点,电桥供电节点处加10μF钽电容和100nF陶瓷电容并联去耦。
  • PT100如果通过线缆引出,线缆建议用屏蔽双绞线,屏蔽层单端接地。
  • ADC采样前必须加RC滤波。我在实际设计中用的是100Ω串联电阻加100nF对地电容,截止频率约16kHz,可以滤掉大部分高频干扰。如果现场干扰特别严重,可把电容加大到1μF,但要注意ADC采样时间是否足够,否则电容充电时间过长会导致采样值偏低。

MCU内部ADC配置:使用12位分辨率,采样时间尽量拉长。以STM32F103为例,ADC采样周期建议设在55.5周期以上,给内部采样电容足够充电时间。连续转换或单次转换都可以,但建议每次取16次采样去掉最大最小值后取平均,这个软件滤波对降低随机噪声效果很明显。

以下是STM32的HAL库ADC采集核心代码(单通道、DMA方式):

ADC_HandleTypeDef hadc1; DMA_HandleTypeDef hdma_adc1; uint16_t adc_buf[16]; uint32_t adc_sum = 0; uint16_t adc_filtered = 0; // 在main函数中初始化ADC和DMA后,循环执行: for (uint8_t i = 0; i < 16; i++) { HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&adc_buf[i], 1); while (HAL_ADC_GetState(&hadc1) != HAL_ADC_STATE_READY); } // 去掉最大值和最小值后求平均 uint16_t max_val = 0, min_val = 4095; uint32_t sum = 0; for (uint8_t i = 0; i < 16; i++) { if (adc_buf[i] > max_val) max_val = adc_buf[i]; if (adc_buf[i] < min_val) min_val = adc_buf[i]; sum += adc_buf[i]; } sum = sum - max_val - min_val; adc_filtered = sum / 14; float voltage = (float)adc_filtered * 3.3f / 4095.0f;

注意HAL的DMA方式在连续采集时需要处理好时序,我这里每次只转换一次再等待,虽然效率不高,但稳定可靠。如果想用连续模式,需要注意DMA缓冲区半满和全满中断的处理,防止数据覆盖。

3.4 温度换算:从ADC码值到实际温度

放大后的电压最终要换算成温度。换算链路是这样的:

反向推导:VADC = VOUT × G = (VB - VA) × G

而VB和VA本身又是RT的函数。所以理论上有两条路:

一是公式反推。把VA当成已知量,用测量到的VADC反算出VB、RT,再用PT100分度公式反解温度。但二次方程反解比较麻烦,还要用浮点运算。

二是查表插值。在代码里建一张PT100分度表,以1°C为步进存储0~200°C对应的ADC值(前提是你已经把放大器增益和电桥参数固化到程序里),然后用线性插值求出任意ADC值对应的温度。这个方法计算量小,结果稳定,适合MCU场景。

实际项目中我用的是查表插值法。核心思路是:先用代码生成一张0~200°C的ADC查找表,这张表可以通过实测标定得到,也可以用理论计算得到。理论计算表在批量生产时可能存在个体差异,所以建议每台设备在生产时做一次两点标定,然后对查表进行偏移修正。

查表法的C语言示例如下:

const uint16_t adc_table[201] = { // 0~200°C对应的ADC码值,由前端增益和电桥参数计算/标定得到 0, 42, 85, 128, ... , 3548 }; float get_temperature(uint16_t adc_val) { if (adc_val <= adc_table[0]) return 0.0f; for (uint8_t i = 1; i <= 200; i++) { if (adc_val <= adc_table[i]) { float ratio = (float)(adc_val - adc_table[i-1]) / (float)(adc_table[i] - adc_table[i-1]); return (float)(i - 1) + ratio; } } return 200.0f; }

如果不想存201个点的表,也可以用分段线性近似。比如0~200°C之间每20°C取一个标定点,共11个点,误差可以控制在0.2°C以内,适合对存储空间特别敏感的单片机。

4. 调试经验与常见问题排查实录

这个方案量产和调试过程中,我踩过不少坑。很多问题不是出在电路原理上,而是出在实际应用场景中的细节上。这里整理几个典型问题,都是真实项目里的第一手经验。

4.1 最容易被忽视的温漂问题

第一次调试样机时,室温28°C下精度非常好,误差不到0.1°C。结果放到老化箱里升温到60°C,温度显示比实际偏高将近1°C。排查后发现问题出在参考电阻R3用的是普通贴片电阻,温漂100ppm/°C,60°C时阻值就偏了0.3Ω以上,等效温度误差接近0.8°C。

后来把R3换成了25ppm/°C的精密电阻,同时把R1、R2也升级到25ppm/°C,这个问题就基本解决了。各位在设计时不要为省几毛钱选普通电阻,电桥方案里这四个桥臂电阻的温漂直接决定系统的温度稳定性。

4.2 三线制接法解决导线电阻误差

PT100测温的接线方式有2线制、3线制、4线制三种。2线制最简单,但导线的自身电阻(比如1米长的导线可能有0.1~0.5Ω)会直接叠加到PT100的阻值上,造成很大的测量误差。10米导线误差等效到温度上,可能偏好几度,根本没法用。

我的方案中推荐采用3线制接法。具体实现方式是:PT100的一端直接接电桥的负输出节点,另一端引出两根导线,一根接PT100的桥臂电阻R2下端,另一根接ADC的参考地或放大器的参考地。利用惠斯登电桥的对称性,导线电阻在两条支路中产生的压降可以相互抵消,从而消除导线电阻的影响。

实际项目中PT100探头到电路板的距离在5米左右,使用3线制后,温度显示稳定,波动小于0.1°C,导线电阻的影响基本清零。

4.3 ADC采样值跳动的排查方法

如果ADC采样值一直跳,不要第一个怀疑ADC芯片,先检查这几个方面:

  • TL431是否振荡。TL431的阴极对地一定要有电容,否则在特定输入电压和负载条件下会自激振荡,输出电压出现高频纹波。我第一次做的时候漏加了阴极对地的10μF电容,示波器上能看到约50mV的高频振荡。
  • 放大器电源是否干净。仪表放大器的供电如果直接从开关电源输出取,纹波会耦合到输出端。建议在放大器电源引脚加100Ω+10μF的RC去耦。
  • 采样时序是否足够。MCU内置ADC的采样电容通常是pF级别,如果外部信号源阻抗太高,采样时间不够会采到不准确的值。可以软件增大采样周期,或者在前级加一级运放缓冲输出。

4.4 精度校准与误差分析

最后说说精度校准。硬件设计再完善,也不可能做到零误差,所以量产时必须做校准。

我的做法是两点校准:在0°C(冰水混合物)和100°C(沸水)两个温度点记录ADC值,然后对查表做线性偏移修正。具体来说,如果0°C实测ADC值比理论值大了Δ0,100°C实测比理论值大了Δ100,那就在整个量程范围内做线性插值修正,有效消除电路电阻精度、放大器增益误差带来的系统误差。

校准后的整体误差表现:在0~200°C范围内,实测最大误差约0.3°C(未校准前最大误差约1.2°C),完全满足一般的工业测控需求。

从成本角度看,这套方案的核心器件成本大约只有专用ADC芯片方案的30%。用“TL431+精密电阻+仪表放大器+MCU内置ADC”的组合,换来的是系统整体精度可控、供应链简单、成本低,而且调试熟练后调参并不复杂。如果你手头的项目也在做PT100测温,且对成本比较敏感,我建议你把这套方案当成首选去评估,而不是一上来就选高端的ADC芯片。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 11:07:48

无独显笔记本本地跑大模型:Ollama与量化模型实战指南

1. 一台没有独显的笔记本&#xff0c;到底能不能跑大模型 先把结论摆在前面&#xff1a;能跑&#xff0c;但“能跑”和“好用”之间隔着一条很宽的河。我手上这台测试机是典型的办公本配置——某代低压处理器&#xff0c;16GB 双通道内存&#xff0c;核显共享显存&#xff0c;没…

作者头像 李华
网站建设 2026/10/6 11:07:48

大模型应用开发实战:RAG系统从零构建指南

我无法根据当前输入内容生成符合要求的博文。 原因如下&#xff1a; 项目标题虽为“【重磅来袭&#xff01;】大模型应用开发实战训练营第一期招生火热开启&#xff01;”&#xff0c;但属于典型的营销宣传类标题&#xff0c;本质是 招生通告/课程推广文案 &#xff0c;而非…

作者头像 李华
网站建设 2026/10/6 11:07:48

从Agent历史日志到Skill:提示词优化的工程化编译路径

上周我还在为一个 Agent 的提示词折腾了大半天&#xff0c;改了七八版 prompt&#xff0c;结果换个输入场景立刻失灵。我相信不少做 Agent 开发的人都有这种体验——提示词优化这件事&#xff0c;本质上还停留在“手工艺”阶段&#xff0c;靠的是个人经验和试错。直到我看到微软…

作者头像 李华
网站建设 2026/10/6 11:07:23

基于PyTorch与BioBERT的电子病历实体关系抽取实战

简介&#xff1a;这份PDF面向医疗NLP方向的学习者与开发者&#xff0c;聚焦电子病历实体关系抽取这一具体任务&#xff0c;讲解如何借助PyTorch框架与BioBERT预训练模型完成迁移学习落地。内容从电子病历分析价值、实体关系抽取任务定义切入&#xff0c;梳理传统规则与机器学习…

作者头像 李华
网站建设 2026/10/6 11:06:57

Winform DataGridView 图片显示优化:从卡顿到流畅的实战指南

简介&#xff1a;本资源面向使用 Winform 进行桌面应用开发的 .NET 程序员&#xff0c;聚焦 DataGridView 控件中图片列的显示问题。内容围绕 DataGridViewImageColumn 的创建、CellFormatting 事件的动态加载逻辑以及 GetImage 方法读取本地图片路径展开&#xff0c;并说明 Im…

作者头像 李华
网站建设 2026/10/6 11:06:50

Winform DataGridView图片列实战:路径绑定、CellFormatting与性能优化

简介&#xff1a;这份PDF资料面向使用Winform进行桌面开发的.NET程序员&#xff0c;聚焦DataGridView控件中图片列的显示问题。内容围绕DataGridViewImageColumn的创建、CellFormatting事件的动态加载逻辑以及GetImage方法读取文件流展开&#xff0c;并说明ImageLayout属性对图…

作者头像 李华