1. 热电堆传感器基础:红外测温原理、热电堆效应、传感器选型要点

各位同学,咱们今天正式开讲。做嵌入式这些年,我接触过不少传感器,但热电堆这个家伙,说实话,第一次上手时还真让我琢磨了一阵子。它不像温度传感器DS18B20那样直接读数字,也不像热敏电阻那样测阻值。它测的是「红外辐射」,说白了,就是物体自己发出的热量。

你想想看,我们人眼能看到东西,是因为有光反射。但红外测温不一样——它不需要光源,物体自己就在往外辐射能量。温度越高,辐射越强。热电堆传感器就是捕捉这个信号的。

1.1 红外测温原理

任何温度高于绝对零度(-273.15℃)的物体,都会向外辐射红外线。这个辐射强度跟温度的四次方成正比——这就是斯特藩-玻尔兹曼定律。公式长这样:

P = ε · σ · T⁴

其中:

  • P:辐射功率(单位面积)
  • ε:发射率(黑体为1,人体约0.98)
  • σ:斯特藩-玻尔兹曼常数(5.67×10⁻⁸ W/m²·K⁴)
  • T:物体的绝对温度(开尔文)

嗯,这里要注意:发射率ε是个坑。我在项目中遇到过测金属表面温度,读数总是偏低。后来才发现,抛光金属的发射率只有0.1左右,直接套公式肯定不准。所以做体温计时,我们通常默认人体发射率接近0.98,问题不大。但如果你要测其他物体,就得先校准发射率。

核心要点:红外测温测的是物体表面辐射的能量,不是空气温度。所以传感器窗口必须对准被测物体,中间不能有玻璃或水汽遮挡。

1.2 热电堆效应

热电堆这个名字,听起来挺唬人。其实原理很简单——就是很多个热电偶串在一起。

单个热电偶,由两种不同金属连接而成。当两端温度不同时,会产生一个微小的电压,这叫塞贝克效应。电压大小跟温差成正比。但单个热电偶产生的电压太小了,只有几微伏每摄氏度,根本没法用。

怎么办?串起来!把几十个甚至上百个热电偶串联,就组成了「热电堆」。这样总电压就放大了几十上百倍,用普通的ADC就能读出来。

我记得第一次看MLX90614的数据手册时,发现它内部集成了热电堆传感器、信号调理电路和ADC,直接输出数字信号。我当时就想:这芯片设计得真聪明,把最头疼的模拟信号处理全包了。

个人经验:如果你用分立的热电堆传感器(比如TS305),一定要做好信号放大和滤波。我曾经因为电源纹波太大,导致读数跳了0.5℃,排查了两天才找到原因——加了个LC滤波就解决了。

1.3 传感器选型要点

市面上常见的热电堆传感器,我主要用过两类:数字输出的MLX90614和模拟输出的TS305。选型时,我一般看这几个维度:

参数 MLX90614 TS305
输出类型 数字(I²C/PWM) 模拟(电压)
测温范围 -70℃ ~ 380℃ -40℃ ~ 300℃
精度(体温范围) ±0.2℃(校准后) ±0.5℃(需外部校准)
接口复杂度 低(I²C直接读) 高(需ADC+算法)
成本 较高 较低

选型时,我个人的习惯是:

  • 做产品原型或快速验证:用MLX90614。I²C接口,直接读寄存器,省心省力。我第一个体温计项目就是用它,三天就调通了。
  • 做低成本大批量产品:用TS305。虽然需要外部ADC和校准算法,但物料成本能降一半。不过要做好标定,否则精度上不去。
  • 注意视场角(FOV):MLX90614有5°和35°两种版本。测体温建议用35°,这样对准额头时容错率高。5°的适合测小目标,比如电路板上的元件。

避坑指南:我曾经在一个项目中选了MLX90614的5°版本做体温计,结果发现用户稍微偏一点角度,读数就掉到35℃以下。后来换成35°版本,问题才解决。所以选FOV时,一定要考虑实际使用场景。

1.4 小结

这一章咱们聊了红外测温的基本原理、热电堆效应,以及选型时要注意的点。说白了,热电堆传感器就是把「看不见的热辐射」变成「能读的电信号」。选型时,精度、接口、成本、视场角,这四个维度缺一不可。

下一章,我会带大家实际搭建一个MLX90614的驱动,从I²C时序到数据解析,手把手走一遍。到时候你会发现,其实没那么复杂。