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时序到数据解析,手把手走一遍。到时候你会发现,其实没那么复杂。