NTC 利用 B 值计算温度 i

前言

NTC 负温度系数热敏电阻,核心特性为电阻随温度升高而降低。工程上常采用B 值模型估算温度,利用厂商给定的 B 值、25℃标称电阻(R_{25}),通过 ADC 采集分压电路算出 NTC 实时电阻,代入 B 值公式,即可反推当前温度。

B 值公式基于指数近似,计算量小,适合单片机嵌入式场景,无需存储大量 R-T 表格,代码实现简单。但 B 值仅在有限温度区间精度良好,属于近似算法;宽温、高精度测温场景,推荐采用厂家 R-T 对照表查表法,减少模型误差。


一、先说说:为什么推荐查表法?

NTC 上拉供电与 ADC 基准是同一电源,绝大部分 MCU 都支持供电为 ADC 基准。这样即使是供电 2.5~5.5V,不用 LDO 对 ADC 值没有影响。

表格里放 ADC 值,MCU 计算量极小。二分查表法 + 阶段线性,存储空间占用小,精度高,计算快。

这套方案非常适合低价芯片,-20~120℃ 宽温区、精度 0.1。

核心优势:

  • 上拉供电与 ADC 基准同源,供电波动不影响 ADC 值
  • 表格存 ADC 值,MCU 计算量极小
  • 二分查表 + 分段线性,存储小、精度高、速度快
  • 适合低价芯片,资源有限

避坑提醒:

网上我看到很多画蛇添足 NTC 上并联电容,虽然在 MCU_VCC 稳定时没啥影响,但 MCU_VCC 波动时会使分压比不符合实际情形,造成测量不准。去除该电容明显效果更好,还省点成本。

ADC 位数处理:

很多 MCU 是达不到 16bit 的,查表前 ADC 值要右移:10bit ADC 右移 6 位,12bit ADC 右移 4 位。


二、B 值公式:基础中的基础

2.1 公式

2.2 符号含义

符号 含义
R2 NTC 在参考温度 T2 下的电阻;图中 NTC 是 10K-3950,T2=25℃,R2=10kΩ
T1、T2 必须是开尔文温度,不是摄氏度!T(K)=t(℃)+273.15
B B 值,图中 NTC:B3950,(B=3950K)
R1 温度 T1 时 NTC 实际电阻

2.3 举例:25℃ 算 20℃ 电阻

和表格 (20℃) NTC 电阻 12.535k 基本对上,微小差异来自 B 值模型本身是近似模型。


三、变形公式:已知 NTC 电阻,反求温度

对应硬件电路

电路:上拉电阻 (R1=10K),NTC 接地,(R2=3.3K) 保护电阻。

R2 会分压! 软件计算 NTC 阻值的时候,不能忽略这个 3.3K,很多人直接套用标准 B 公式,温度算出来全错。

NTC_IO 的 ADC 采样电压:是 NTC 与 R2 串联之后,再和 R1 分压。

B 值公式计算法 :代码调用 exp()、log() 数字库函数;

缺点:MCU 的 math 库消耗 Flash,浮点运算耗时。


四、总结

几种方式对比:

方案 优点 缺点 推荐场景
B 值法 简单,1 个参数 宽温区误差大 窄温区、低成本
S-H 拟合法 宽温区精度高 运算量大,占 Flash 工业、BMS、医疗
查表 + 线性插值 快、小、无浮点 需预生成表格 量产、低价 MCU、硬实时
相关推荐
一个平凡而乐于分享的小比特6 个月前
线性插值法详解
线性插值·ntc·r-t表