嵌入式工程师必备技能:NTC采样原理与温度转换详解



目录

  • 嵌入式工程师必备技能:NTC采样原理与温度转换详解
  • 1、简单介绍
  • 2、测温原理
  • 3、测温电路
  • 4、NTC阻值计算
  • 5、实战技能



1、简单介绍

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻NTC(Negative Temperature Coefficient),意为是负的温度系数,泛指负温度系数很大的半导体材料或元器件。

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻通常我们提到的NTC是指负温度系数热敏电阻,简称NTC热敏电阻。又被称为负温度系数热敏电阻,是一类电阻值随温度增大而减小的一种传感器电阻。

NTC热敏电阻根据其用途的不同分为:

  • 功率型NTC热敏电阻
  • 补偿型NTC热敏电阻
  • 测温型NTC热敏电阻

本文用来讲解的就是第三种使用方式:用来测温


2、测温原理

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻可能你要问了,测温不是可以使用温度传感器,如DS18B20直接测吗?为什么还要用热敏电阻,还根据热敏电阻值去转换实际的温度值,岂不是若此一举?

上对比图,这是某国产18B20的价钱:

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_单片机_04

再看一眼NTC热敏电阻的价钱:

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_单片机_05

原因就不必多说了吧~!

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻我们使用热敏电阻时手册里都会说明是多少K的电阻,如10K、100K等,这代表当热敏电阻为10K时对应温度25℃,另外厂家还会提供一张电阻关系和实际温度的对应表,以风华的CMFA103J3950HANT型为例,这是一个参数为10KΩ,25℃的热敏电阻,厂家提供的数据表如下:

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC_07


3、测温电路

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻采样电路也很简单,回到初中所学知识:串联电阻分压电路用在此处恰好不过。以我实际使用的一个产品电路为例,电路如下所示:

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_单片机_09

R28:风华NTC热敏电阻,型号:CMFA103J3950HANT

R30:分压电阻,10KΩ

如上图所示,ADC采样得到的电压值就是R28两端的电压,总电压是5V,那么R30两端的电压也就是5V-U28的电压。


4、NTC阻值计算

串联电路分压公式如下图所示:

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_嵌入式_10

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_单片机_11

将上面的公式变形,就变成了串联电路求电阻公式

  • R2 = R1 * U / U1 - R1
  • R1 = R2 * U / U2 - R2

那么,现在已知的参数有:

  • 电源电压:5V
  • R28电压:2.74V(通过ADC采集得到)
  • R30电压:2.26V(5-2.74)
  • R30阻值:10K

套用公式求NTC电阻值R28:

10KΩ * 5V / 2.26V - 10KΩ = 12.124KΩ

然后去查表得到温度为20℃左右。

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_拟合_12


5、实战技能

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻通过上面的讲解我们已经把NTC电阻用起来了,在程序中将阻值转换为温度时常用的有如下几个办法:

  1. 查表法:将厂家提供的温度与阻值的关系表写死在单片机中,程序通过查表获得温度
  2. 计算法:对电阻与温度这个表进行抽样后做成一个公式,在程序中通过计算去得到实际的温度

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻查表法常见的使用方式,但是这样就有一个缺点,这个表太大了,并且厂家提供的资料还都是pdf格式,无法直接复制出来,实现起来不够优雅,所以我一般不采用;另一方面来说,对于FLASH或内存容量比较小的单片机来说,能不能够存储下这么大的表还是个问题。

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻使用计算法需要注意,NTC电阻值与温度之间的关系不是线性的,是指数函数关系,直接做公式是不好做的,有的工程师是分段标定,但是我觉得这样太麻烦了,所以我的办法是使用matlab做公式拟合,拟合方式选择Power,也就是指数函数。

NTC电阻值与温度曲线:

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻_16

matlab拟合效果如下:

嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解_NTC热敏电阻_17

拟合效果是非常理想的,可以说是一模一样了。

拟合出来的公式为:

温度(℃) = 209.3 * pow(NTC电阻值(KΩ),-0.156) - 121.3,pow为求x的n次幂。

套用我们上面已经计算出来的NTC电阻值12.124K欧姆:

209.3 * pow(12.124,-0.156) - 121.3 ≈ 20.514℃

计算出来的温度值完全没问题~!!


如果这篇文章对比有帮助,请点个赞支持一下 ~ ^ _ ^ ~


ends…