按精度和成本选一颗测温的器件
测温看起来是传感里最简单的一角。出错很少出在选哪颗芯片上;读数会漂、会偏高,是因为传感器报的是它自己的结温,被自己的偏置电流烘着,又通过一条从没画进原理图的热路径连着板子。台架上那颗芯片几乎总能达到它的数据手册。它在接触什么、热多快传到它,才是更难的那一半。
选得好,要从测量本身出发,再走向器件。被测的是什么、这件事需要多少精度、传感器在物理上怎么够得着它,这几个问题先定下传感方式,料号要到这之后才进入视野。把顺序弄反,设计最后就会拿一颗贵传感器去硬扛一个热学问题,而那个问题换一颗便宜些、装得更到位的器件本来就能解决。同一颗料号,在一个设计里是对的、在另一个设计里是错的,原因可能和它里头的硅片毫无关系。
「精度」在这里指什么
数据手册上的精度,是几个不同的数字共用着一个词,而一个设计通常只在乎其中一个。读清楚这颗器件承诺的是哪一个、在多大范围内承诺,是值得先迈的一步。
绝对精度,是读数离真实温度有多近。它最贵,要保证它就得能溯源到一个校准标准,它在温度计、基准仪器或医疗设备里才物有所值,那里这个数字本身必须是对的。对很多设计来说,它超出了实际所需,而一颗器件标的绝对精度,往往比应用真正用得上的还要紧。再往上压,通常意味着出厂时逐件校准,那是按颗加成本,而不是按设计加一次。
重复性,是同一个温度是不是每次都读成一样,它正是一个控制环路悄悄依赖的东西。一个把炉子稳在设定点的环路,从来不需要知道真值,它只需要每个周期里读数都代表同一件事。分辨率又是另一回事,是器件能报出的最小一档,常常比精度还细,于是诱使人去相信精度指标根本撑不起的那几位数。
长期稳定性是第四个,也最容易被忘掉。一颗器件可以在第一周分毫不差,再一年里漂上百分之几度,这在台架上看不见,在一颗要十年不去碰的传感器里却是决定性的。一份数据手册也常常只在室温附近一个窄窗口里标出它最好的精度,出了那条带误差就放大。一颗器件到底承诺这四样里的哪一样、在多宽的温区里承诺,正是把「纸面好看」和「真扛得住这份活」分开来的地方。
直接给你一个数字的那类器件
最省事的传感器,是一颗把整条链都做在自己内部、直接在数字总线上交回度数的芯片。对于一块只需要知道自身温度、误差在一度上下的板子,选型往往到这里就结束了。像用于低成本板温的 TMP102这样一颗小小的 I²C 器件,精度足以做风扇控制、或给另一个随热漂移的电路做补偿,又便宜到可以不假思索地放上去。
当要求往仪器级爬,能做到十分之一度的 TMP117 把这个数字稳住、还能长期保持,逼近一颗铂电阻给的水平,却没有它那一堆接线。它比一颗基本器件贵,换来的是替掉了一整套 RTD 前端,这是它给「要精度、但不想要那套管线」的设计开出的价钱。

当温度要在一条线路上的好几个点去读,挂在单总线上的 DS18B20 把许多传感器接到同一根数据线上,每颗都有出厂唯一的地址,甚至能用寄生供电模式从这根线上取电。上面那些 I²C 器件在这里撞了墙,因为每个型号只给出寥寥几个可选地址,所以一个有几十个点的活儿就靠单总线方案。代价是速度:DS18B20 跑一次完整的十二位转换要花掉将近一秒,对它穿行的冷库和服务器机柜来说够用了,那里点的数目比每个点刷新多快更要紧。
便宜的模拟办法
在数字器件接手之前,温度是被当成一个电压或一个电阻来读的,这些办法到今天仍在成本和简单上占优。输出模拟电压的 LM35 每度给出十毫伏,直接进 ADC 引脚,没有总线要驱动、没有驱动程序要写。它的精度于是靠后面那个 ADC 基准撑着,所以传感器只能和它所对照的那个电压一样好。一颗普通的 LM35 还测不了零度以下,除非给它负偏置或第二组电源,这一点常坑到那种在温暖台架上认识它、后来却把产品发往寒冷现场的设计。它在已经用了模拟通路、又恰好有一个 ADC 输入空着的场合仍是明智之选,因为它不用驱动什么、也不用和谁通信。
热敏电阻更便宜,读的是一个随升温陡降的电阻。用于测温的 NTCLE100E3 这类 NTC 热敏电阻,是坐在电池组或充电器里的那种器件,那里的活儿是发现一颗电芯过热、固件盯着一个阈值。代价出在曲线上:NTC 是陡峭非线性的,所以代码要带一张查找表、或现算 Beta 值方程,而它的容差,也就是一颗和下一颗之间的离散,决定了不逐件校准时那条曲线能贴多准。
把读数取回板子
接口本身就是成本的一部分。一颗模拟器件要占一个 ADC 通道和一个干净的基准去对照。一颗数字器件要占一个总线地址,而 I²C 上每个型号只有那么几个地址可用。一支热电偶或一颗 RTD 要在 SPI 上挂自己专门的前端。在一块只跑一颗微控制器的拥挤板子上,还空着的通道和地址常常在精度被掂量之前,就决定了哪一族根本可不可行。
这些在只看精度去评一颗器件时全不显形,却是一张整洁的备选清单到后期散架的常见原因,等到选中的那颗发现要占一条已经满了的总线时。
精度从哪里漏掉
温度之所以值得比它表面的简单多花心思,是因为传感器报的是它自己的温度,而不是你想测的那个东西的温度,这两者之间的差,装着真正的误差。先从自热说起。任何走电流的器件都会把自己烘热一点;一颗在一毫安下偏置的传感器,可能就坐在比环境高零点几度的地方,而一颗被过大激励电流推着的热敏电阻,会把自己耗散的热当成一次假升温读出来,这正是为什么一旦较真到零点几度,低电流或脉冲式偏置就要紧起来。接下来是热路径。一颗焊在板上的传感器,读的是它周围空气和它底下铜箔的混合,所以一颗本想测环境的器件会被旁边一颗稳压器顺着地平面拽过去,而一颗本想读某个发热器件的,若装在一条又细、接触又差的走线上,就会读低。热还要花时间才能传开,所以传感器会滞后:一颗裸露的探头珠也许不到一秒就稳定,而一支套在保护套管里的探头能花上好几秒,一个采样比那个时间常数还快的环路,是在追着传感器升温、而过程其实几乎没动。漂移收尾,出厂时成立的那次校准,会在多年里随着封装吸潮、芯片老化而走偏。这些没有一样出现在标头的精度数字里,而它们全取决于传感器怎么装、怎么驱动,那颗器件本身排在很后面。
高温用的探头
过了几百度,没有芯片能待在热所在的地方。传感器就变成一支探头。
热电偶靠的是两种不同金属的结上出现的那一点小电压,这让它能熬到几百度、甚至上千度,远超硅放弃的地方。这个信号又小又非线性,而且只有相对于引线落脚那个接线端子的温度,它才有意义。这对金属也定下了量程,所以 K 型覆盖宽阔的工业温区,而 J 型或 T 型在较低温度、较短量程上读出一个更细的信号,选哪种型号得和给它做线性化的前端对上。
那个端子温度,也就是冷端,必须被测出来再补回去,而一支裸热电偶自己做不到这件事。像 MAX31855 这样读 K 型热电偶并带冷端补偿的前端,把冷端校正和线性化一起做了,把一小把微伏变成固件能用的读数。

RTD 回应的是另一种需求,用更窄的量程换回更高的精度和更好的稳定性。一片铂元件以一种平滑、可重复的方式改变电阻,这让一颗 PT100 在几百度内成为近乎基准级的选择,多年里也比热电偶更稳。一颗标准 PT100 在零度读一百欧姆,再按一个定义明确的系数往上爬,这正是为什么一家厂的一片元件能不费什么事地顶替另一家的。
把它读好,要一个已知的激励电流,还要在引线上费心,因为引线的电阻会直接加到元件上、显成一个温度误差。像 MAX31865 这样给 PT100 做 RTD 前端的器件,驱动元件,并支持二线、三线和四线接法,把那点引线电阻按一个设计所需的程度抵消掉。激励电流本身是个分寸,太大就把铂元件烘热、读高了,而一支为防护套起来的探头响应得够慢,慢到一个快过程能跑在它前面。
隔着空气测
有些表面碰不得,一条在产线上走过的料带、或者一个人的皮肤,红外传感读的是它们从远处辐射出来的热。做非接触红外测温的 MLX90614 就这样读单独一个点,适合一支额温枪、或对一台电机做一次快速检查,前提是目标的发射率已知、或者接近传感器假定的值。它带着一个视场,所以读数是在那个距离上光学所看到的那片面积上的一个平均。那个光斑随距离按一个固定的距离系数变大,于是把一颗近距离的器件隔着一整个房间瞄准一个小目标,读到的更多是它周围的墙,而不是目标。

当一个设计需要的是一张「热在哪里」的图,一片阵列就一次读许多个点。做 32 乘 24 红外热成像阵列的 MLX90640 回送一张粗糙的热图,足以找出电池组里一颗发热的电芯、或一个快坏的轴承,又不用一台完整热像仪的价钱。发射率仍然主宰结果,一块光亮的金属表面读得比它真实温度低,除非把它涂黑或贴上胶带。这片阵列还自带一个温度基准,用来修正传感器自身的升温,而它的帧率不高,所以它画的是缓慢的热分布、会漏掉快速的瞬变。
把这些放在一起看,那颗器件几乎是最后才定下来的东西。方法先被选定,从被测的是什么、要多准、传感器怎么够得着它里头长出来,而只有在某一族之内,选择才落到数据手册上的某一个数字上。
相关信息

- 2026.06.04 给设备做声音采集和振动监测

- 2026.06.04 把流量和液位测准的传感方案

- 2026.06.04 无接触地把位置和角度测出来

- 2026.06.04 在联网设备里感知温湿度、气体与空气质量
