作为一个无法使用实验室设备的爱好者,我似乎真的不可能校准我拥有的热敏电阻。
当然也有经过校准的温度传感器,例如 DS18B20,但专门用于 Aruino UNO 等慢速 MCU 的热敏电阻(与新的 MCU 相比)更灵敏。
在不使用实验室设备的情况下校准热敏电阻有哪些选择?
作为一个无法使用实验室设备的爱好者,我似乎真的不可能校准我拥有的热敏电阻。
当然也有经过校准的温度传感器,例如 DS18B20,但专门用于 Aruino UNO 等慢速 MCU 的热敏电阻(与新的 MCU 相比)更灵敏。
在不使用实验室设备的情况下校准热敏电阻有哪些选择?
读取热敏电阻有点棘手。上述校准方法不会产生错误检测,它会创建对数曲线的两个点(热敏电阻响应曲线。
这意味着,对于每 0.1°C 的温度变化,相应的电阻变化将根据温度范围而变化。
起初,您可能会看到与实际温度相差 2 到 5°C 的误差,但没有误差,只是读数不好。
你没有发布任何关于你如何阅读这个热敏电阻的细节,Arduino可能是?我必须说,有些库根本不工作,所以你必须创建一个特殊的函数来做到这一点。
发布有关如何表征和读取热敏电阻的详细说明。 帖子是西班牙语,但在代码标签中,所有解释都是用简单的英语。
一旦您获得了 ABC 系数,即使在 6m 长的 LAN 线路中,您的误差也将与另一次测量相比约为 0.1°C。
在杯子里装满冰块,然后倒入水,加满水。偶尔搅动一下。当冰开始融化时,您将处于 0°C。将传感器插入水中并读取读数。
如果您的传感器可以忍受,请将其放入一壶开水中。在海平面上,这将为您提供 100°C 的参考读数。
如果您需要对传感器进行热缩防水处理,则必须留出一些时间让读数稳定。
图 1. 简单的线性校准曲线。
$$ T = 100 \frac{y - y1}{y2-y1} $$ 其中y = 在温度T下的读数。
正如评论中所指出的,如果您使用的是热敏电阻,则需要检查数据表的线性度。如果这种简单的方法不够好,您将不得不在微控制器中使用多项式计算或查找表。
校准热敏电阻(或大多数传感器)是一个两步过程:
第一步是最难的,不幸的是,这是我经验最少的一步。然后我将只用非常笼统的术语来描述它。第二步主要是数学。
您必须用 (T, R) 对填写表格,即在已知温度下测量的电阻值。您的校准数据应涵盖您在实际使用中所需的整个温度范围。超出此范围的数据点不是很有用。否则,您拥有的数据点越多越好。
为了测量热敏电阻的电阻,我建议您 不要使用欧姆表。改用您将用于实际校准后测量的相同设置。这样,电阻测量中的任何系统误差(如 ADC 偏移和增益误差)都将被校准。
要了解温度,您有两种选择:使用固定温度点(例如,沸水或融化的冰)或使用已校准的温度计。定点是温度校准的黄金标准,但很难让它们正确,而且您可能不会在您关心的温度范围内找到其中的许多。
使用已知良好的温度计可能会更容易,但仍有一些警告:
将两者放在一起,放在具有高热惯性的外壳(冰箱或烤箱)中可能会有所帮助。
显然,参考温度计的准确性在这里是一个非常重要的因素。它应该比您对最终测量精度的要求更加准确。
现在您需要找到一个适合您的数据的数学函数。这被称为“经验拟合”。原则上,任何法律都可以做到,只要它离数据点足够近。多项式在这里是最受欢迎的,因为拟合总是收敛的(因为函数相对于它的系数是线性的)并且它们的评估成本很低,即使在低级微控制器上也是如此。作为一种特殊情况,线性回归可能是您可以尝试的最简单的定律。
但是,除非您对非常窄的温度范围感兴趣,否则 NTC 热敏电阻的响应是高度非线性的,不太适合低次多项式拟合。然而,变量的策略性改变可以使你的定律几乎是线性的并且很容易适应。为此,我们将通过一些基本的物理学来转移注意力……
NTC 热敏电阻中的导电是一个热激活过程。然后可以通过 Arrhenius 方程对电导进行建模:
G = G ∞ exp(-E a /(k B T))
其中 G ∞称为“指前因子”,E a是活化能,k B是 玻尔兹曼常数,T 是绝对温度。
这可以重新排列为线性定律:
1/T = A + B log(R)
其中 B = k B /E a ; A = B log(G ∞ ) ; log() 是自然对数。
如果您获取校准数据并绘制 1/T 作为 log(R) 的函数(这基本上是轴交换的Arrhenius 图),您会注意到它几乎是一条直线,但并不完全是一条直线。偏离线性主要是因为指前因子与温度有轻微的相关性。尽管如此,曲线还是足够平滑,可以很容易地用一个低次多项式拟合:
1/T = c 0 + c 1 log(R) + c 2 log(R) 2 + c 3 log(R) 3 + ...
如果您感兴趣的温度范围足够短,那么线性近似值可能对您来说就足够了。然后,您将使用所谓的“β 模型”,其中 β 系数为 1/B。如果您使用三次多项式,您可能会注意到 可以忽略c 2系数。如果你确实忽略了它,那么你就有了著名的Steinhart-Hart 方程。
一般来说,多项式的次数越高,它应该越适合数据。但是如果度数太高,你最终会 过拟合。在任何情况下,拟合中的自由参数的数量都不应超过数据点的数量。如果这些数字相等,则该定律将完全拟合数据,但您无法评估拟合优度。请注意,此热敏电阻计算器 (在评论中链接)仅使用三个数据点来提供三个系数。这是初步近似校准的上帝,但如果我需要准确性,我不会依赖它。
我不会在这里讨论如何实际执行拟合。用于制作任意数据的软件包比比皆是。
线性化温度计具有增益和偏移误差。
热敏电阻在 25'C 下使用具有 2 个变量的特定灵敏度曲线进行校准。
要校准它,您只需要 2 次测量