使用 MCU 进行廉价温度传感

电器工程 传感器 温度
2022-01-08 13:57:59

我正在寻找一种使用 MCU 感测温度的廉价解决方案。我的要求是:

  • 2个频道
  • 温度范围:30-35°C
  • 温度分辨率:1-2 K
  • 电缆距离(MCU -> 传感器)10cm - 2m 是可以接受的
  • 两个通道之间的相对温度就足够了,不需要绝对温度

我的出发点是两个带有热电偶放大器的热电偶,但这对我的应用来说似乎有点过分了。Radiospares 的热电偶价格为 10 美元,安培价格为 5 美元,仅估算温度就需要 30 美元。

寻找更便宜的解决方案的好方向是什么。NTC?


编辑 2012 年 7 月 18 日

在 stevenvh 扩展他的答案以显示使用 NTC 可以获得的高度线性之后,我花了一些时间重新考虑 NTC 是否不是更好的解决方案。

但是,我不确定我是否能够遵循 stevenvh 的推理,即与半导体芯片相比,NTC 可以以便宜的价格获得错误。

要使用 NTC 获取温度,需要使用以下功能:

  1. 传递函数 \$ H_{T_a\rightarrow R_{NTC}}(R_{25},B_{25/85}) \$ 将环境温度转换为电阻
  2. 分压器产生的电压 \$ H_{R_{NTC}\rightarrow V}(V_{excitation},R_{NTC}, R_{lin}) \$
  3. AD 转换 \$ H_{V\rightarrow bits}(V, V_{ref}, \sigma_{conversion}) \$
  4. 线性曲线近似:\$ H_{bits\rightarrow T_{est}}(bits, \sigma_{approx}) \$

我看到的错误来源是:

  1. NTC 值错误:\$ R_{25} \$ 和 \$ B_{25-85} \$ 值各 1%:总计约 2%
  2. 线性电阻值为 1%,激励电压源为 0.5%
  3. 对于 PIC16F1825,用于 ADC 的内部参考电压具有 6% 的不确定性。此外,ADC 本身的积分、微分、失调和增益误差均在 1.5 lsb 左右。在 10 位时,后者加起来最多为 0.5%。
  4. 正如 stevenvh 在他的回答中所证明的那样,线性近似在感兴趣的范围内的误差仅为 0.0015%。

因此,温度估计误差显然主要由 ADV 电压基准误差和电阻值误差决定。它显然会超过 6%。正如 stevenvh 所指出的,由于线性逼近造成的误差完全可以忽略不计。

300 开尔文下 6% 的不确定性相当于 18K 的温度误差。温度芯片有大约1K的误差。在 300K 时,这对应于 0.3% 的不确定性。

在我看来,如果没有非常仔细的校准和性能验证,用 NTC 击败它是不可能的。线性化电阻器、激励电压或 ADC 的不确定性,每一个都被孤立地看待,将 NTC 解决方案的不确定性推到了这个之上。还是我的推理有重大错误?

目前,我确信 NTC 可以成为一种高精度的温度传感解决方案,但在我看来,它们的性能很便宜,但在我看来,它们的性能将是一个未知数。

4个回答

我会说 NTC,是的。是我在 Digikey 能找到的最便宜的。大约半美元,这比具有大致相同精度的温度传感器 IC 便宜得多。NTC 的优点是它只需要一个串联电阻和一个 ADC 输入在您的微控制器上,而现在大多数都有。

低价也有一个缺点:NTC 绝不是线性的。您要么必须使用它的传递函数(其中包含指数,您可能不喜欢它,要么使用查找表,对于给定的范围,这可能是最佳解决方案。

编辑dd。2012-07-13
呸,被可怜的 LM75 殴打。我不会让这件事过去的。:-)

我将使用这个 NTC 系列的 *103*MT* 。首先是传递函数:

\$ R = 10 k\Omega \cdot \large{e^{-13.4096 + \frac{4481.80}T - \frac{150522}{T^2} + \frac{1877103}{T^3}}} \ $ ,

其中 \$T\$ 是开尔文。

看起来不太乐观,实际上在 0 °C 和 100 °C 之间,曲线看起来像这样:

在此处输入图像描述

就像我说的那样,不是线性的。我们可以尝试对其进行线性化,但请记住,我们将用它制作一个电阻分压器,它们也不是线性的,所以现在任何线性化都会被串联电阻破坏。所以让我们从电阻开始,看看会发生什么。我有一个 3.3 V 电源并选择一个 5.6 kΩ 电阻到 Vcc,然后输出变为

在此处输入图像描述

一点也不差!紫色曲线是我们感兴趣的范围内的切线:30 °C 到 35 °C。我可以绘制放大的图形,但这给了我们两条重合的线,所以让我们看看错误:

在此处输入图像描述

看起来也不好看,但是您必须查看垂直刻度,它给出了与我们在 30 °C 到 35 °C 之间的 NTC 特性相比的线性近似的相对误差。误差小于 15 ppm 或 0.0015 %

Mathematica 说我们近乎完美的线性近似的方程是

\$ V_{OUT} = - 0.0308 \text{ }T \text{ }\cdot 1 V/°C + 2.886 \text{ }V \$

这将导致 ADC 读数分别为 609 和 561。对于 10 位 ADC。对于 5 °C 的差异,或约 0.1 °C 的分辨率,范围为 48。只有NTC和一个电阻。

谁需要LM75!?



编辑dd。2012-08-13

事实:NTC 解决方案需要校准。

我答应 Arik 重新计算误差,但它比我想象的要复杂得多,而且由于数据不完整而无法完成。例如,我对 NTC 传递函数中的系数有非常精确的数字(7 位有效数字已经四舍五入了!),但没有关于其准确性的信息。虽然有一些评论。

Arik 添加了错误,例如 1% 电阻容差 + 1% 的 \$\beta\$ = 2 % 错误。嗯,这并不容易,这是我提到的复杂性的一部分。例如,\$\beta\$ 的 1 % 容差会导致结果中出现 0.1 % 的误差。

错误并不总是相同的。例如,Maxim 的 LM75 数据表没有提到最小和最大误差,而是提到了 3 sigma 和 6 sigma 值。另一方面,Vishay NTC 数据表提到 \$\pm\$ 1 % 错误。是六码吗?七西格玛?然后它可能会比 LM75 更准确,LM75 是 2°C 的 6 Sigma 精度,甚至在整个温度范围内也可以达到 3°C。这没什么好丢脸的。如果没有校准,很少有传感器会做得更好。问题:您如何比较公差数字?还有一个:你如何结合几个钟形曲线函数来得到一个总误差?

PIC 的 ADC 参考有一个非常糟糕的 6% 容差。Arik 说,在 300 开尔文下 6% 的不确定性相当于 18 K 的温度误差,这当然是荒谬且完全荒谬的。我做了一个快速检查:计算了 20 °C 温度下分压器的输出。再加上 6%,然后计算回 NTC 的电阻值和温度。误差不是 18 °C,而是 1 °C,或小于 0.5 %,参考 0 K。

即便如此,这 6% 的错误也完全无关紧要如果您将 ADC 的参考电压用于电阻分压器,则该电压甚至不会出现在计算中。我不在乎错误是否为 50%。如果错误的内部参考在控制器外部不可用,请使用另一个参考。就像 3.3 V 电源,或者你周围的任何其他直流电压。

对于一次性项目,校准不是您想要的,但对于大规模生产,这完全不用担心,尤其是在每一分钱都很重要的消费电子产品中,您更有可能找到 NTC,而不是昂贵的 LM75。

1-2 度是一个简单的分辨率(即使您指的是准确度,这也不一样!)。我会考虑 LM75 及其各种克隆,或 DS1820/18S20/18B20/1822。Microchip 有很多温度传感器,包括不到 1 美元的 LM75 克隆。电压输出版本很便宜,但我更喜欢数字版本。

这听起来像是一个热敏电阻的工作,或者更准确地说是两个热敏电阻。由于您只需要区分三种不同的温度状态并且您只是在寻找相对温度,因此您可以将两个热敏电阻连接在一起以产生单个模拟信号。然后可以使用内置在微型计算机中的 A/D 进行测量。大多数微机都有 A/D,所以这不会花费更多。我可能会添加几个电阻器和电容器作为低通滤波器以降低噪声。

一个热敏电阻从地连接到模拟信号,另一个从电源连接到模拟信号。您可能需要进行一些校准,但由于温度范围窄且分辨率低,您无需花哨。可能只是保存零差电压并从未来的读数中减去它就足够了。

如果您不了解阶梯式二极管电流增量电压测量温度的方法,并且对测量温度感兴趣,您应该阅读这篇文章 - 它可能会改变您对温度测量的想法。


我参加聚会有点晚了。
由于现在已经使用了答案,因此我将主要概述一种替代方法,该方法具有相当大的优点,但似乎很少以离散形式使用。

这种方法通常用于 IC 温度测量 IC,但似乎仍然不如预期的那样为人所知。

如果硅(比方说)二极管交替馈入两个已知电流,则电压随电流变化的变化与绝对温度有关。

这种方法(至少)用于 TI LM82、LM83、LM84、LM87 和 LTC3880、LTC3883 和 LTC2974 传感器。

请注意,此方法不同于在给定电流下测量绝对二极管正向压降以推断温度的常用方法。这种方法实际上更加准确,并且不需要传感器特定的校准。

大约 0.1 摄氏度(或 K)的精度是可以实现的。
分辨率取决于测量方法。

结果是免费的设备校准。
结果仅取决于基本二极管类型(例如硅、锗),
例如,如果您使用低于 1 美分的 1N4148 信号二极管,您可以将一个换成另一个 1N4148,并且无需重新校准即可获得相同的精度。

设置使用的两个电流的精度显然会影响结果精度,但由于可以选择这些以适应可用资源,因此结果可能非常好。

这种方法被一些但不是所有的片上处理器温度测量系统使用。您通常会发现,在使用该系统的地方,技术描述非常注重细节并且有些模糊 - 即他们似乎希望对其保密,即使该方法可能可以追溯到 Widlar 在 1960 年代中期的工作。

这种方法可以与使用 NTC 热敏电阻或 PT100 等铂电阻和类似电阻实现的精度相媲美,具有非常具有竞争力的复杂性和难度。


这份出色的 1999 年 ADI 应用说明以速度和准确度测量计算机芯片上的温度声称该技术是一种新技术。我完全不确定它们是否正确 - 但它肯定是有用的,而且鲜为人知。

从上面的论文(稍微改写)来看,电流 1 时 I 和 NI 的电流以及二极管电压降 Cv1 和电流 2 时的 Vd2:

Vd1 – Vd2 = DVd = (kT/q) ln (I/NI) = (kT/q) ln (1/N)

由于 N、k 和 q 都是已知常数,因此
T = (Constant)(DVd)

_

出色的 TI 应用笔记多远程二极管温度传感

维基百科 - 硅带隙温度传感器

[LT AN137 采用外部 PN 结的精确温度传感] http://cds.linear.com/docs/Application%20Note/an137f.pdf
用于例如 LTC3880、LTC3883 和 LTC2974。