深圳市敏创电子有限公司

热敏电阻生产厂家
专注热敏电阻12年,可特殊定制
您当前所在的位置:主页 > 技术文档 > 技术文档

使用NTC热敏电阻测量温度的4个方法

时间:2018-09-16   来源:敏创电子  编辑:热敏电阻厂家  浏览:
了解NTC热敏电阻以及如何对Arduino进行编程以测量其数据。

你有没有了解过温控器,3D打印机加热床,汽车发动机或烤箱等设备如何测量温度?看完这篇文章可能你就有方法了。
 

了解项目中的温度可以获得非常有用的数据。了解温度有助于调节室内温度,确保舒适的环境,确保3D打印机床足够热,使ABS等材料粘在其表面,防止发动机过热,并防止食物被烧毁。

对于本文,我们只关注一种可以测量温度的传感器。该传感器称为热敏电阻。
 

热敏电阻的耐温性比其他类型的电阻更敏感。

我们将使用Arduino测量和处理热敏电阻的读数,然后将其转换为人性化的常见温度单位格式。

下面是我们将要使用的热敏电阻的图片:

 

漆包线热敏电阻

 

BOM

硬件

  • Arduino的
    • MEGA或Uno或您最喜欢的Arduino风味
  • 一些跳线
  • 焊锡和烙铁(可能是因为你的热敏电阻不适合Arduino接头)

软件

  • Arduino IDE

 

理论

在电阻器的典型应用中,您不希望电阻随温度变化。这在现实生活中实际上是不可能的,但是可以通过大的温度变化确保电阻的微小变化。如果不是这种情况,电阻会使电路中发生奇怪的事情,例如随着环境温度变化而变得更亮和更暗的LED。

但是,如果你确实希望LED的亮度是温度的函数呢?这就是热敏电阻的用武之地。正如您可能已经猜到的那样,热敏电阻的电阻变化很大,温度变化很小。为了说明这个概念,请查看热敏电阻的典型曲线:

 

 

显示单位但不是实际值,因为热敏电阻可根据您购买的不同而定制到不同的范围。如您所见,温度越来越高,阻力越来越小。这是负温度系数电阻器(简称NTC)的特性。

还有一些热敏电阻具有正温度系数(简称PTC),这意味着随着温度的升高,电阻会增加。但是,PTC热敏电阻具有一种临界点,并且在某些温度下会大大改变电阻。这使得PTC热敏电阻更难以与之接口。因此,对于大多数低成本温度测量,NTC热敏电阻是首选。

对于本文的其余部分,您可以假设我们将指的是NTC型热敏电阻。

 

找到曲线拟合公式的四种方法


现在我们更好地了解热敏电阻的一般行为,您可能会开始想知道我们如何使用Arduino来测量温度。上图中的曲线是非线性的,因此,似乎不可能使用简单的线性方程。(实际上,我们可以计算出一个等式,但稍后会更多。)

那么该怎么办?
 

在继续阅读之前,请考虑如何在Arduino或甚至没有微处理器组件的电路中执行此操作。

您可以通过以下几种方法解决此问题。这绝不是每种技术的清单,但它会向您展示一些流行的方法。

 

方法一:

一些制造商足够好,可以为您提供映射某个整数范围的温度和电阻(典型值)的整个图表。Vishay公司的数据表中可以找到一个这样的热敏电阻

但是你想想你将如何在Arduino中做到这一点。您需要将所有这些值硬编码到巨大的查找表或非常长的“switch ... case”或“if ... then”控制结构中的代码中。

如果制造商不够好以提供查找表,则需要自己测量每个点以生成数据。对于一个程序员来说,这是一个非常糟糕的一天。但这种方法并不全是坏事而且有其地位。如果手边的项目只检查几个点甚至是小范围,这可能是首选的方法。例如,一种情况是,如果您只想测量值是否在选定的温度范围内,并设置LED指示灯亮起以指示这种情况。

但对于我们的项目,我们希望测量接近连续的范围并将其发送到串行监视器,因此不会使用此方法。

 

方法二:

您可以尝试通过添加外部电路来“线性化”热敏电阻的响应。

一种流行的方法是将一个电阻与热敏电阻并联。有些IC可以为您提供此功能。

确定如何选择和线性化区域以及选择正确的值是一篇文章本身。如果微处理器没有浮点精度(如PICAXE),这种方法很好,因为它简化了温度范围到线性响应。它还使得设计没有微处理器的电路变得更容易。

但是我们在本文中有一个微处理器,并希望利用整个范围。

 

方法三:

您可以从数据表中获取表格数据,或者(如果您喜欢自己惩罚)生成您使用独立测量所做的数据,并在Excel中重新创建绘图。然后,您可以使用曲线拟合功能为曲线创建公式。这不是一个坏主意,并且所有执行的工作都会为您的程序提供一个很好的公式 - 但它确实需要一些时间和数据的预处理。

虽然这是一种合法的方法,但我们不希望被困在分析所有这些数据。此外,每个热敏电阻都略有不同(当然,如果公差非常低,这不是真正的问题)。

 

方法四:

事实证明,有一种通用曲线拟合公式适用于热敏电阻等器件。它被称为Steinhart-Hart方程它的一个版本如下所示(其他版本使用平方术语和立方术语):

 

 
1
 
Ť
 
lnC.
 
 
 
 
3
 
 
1
T=A+Bln(R)+C(ln(R))3

 

 

其中R是热敏电阻在温度T(以开尔文为单位)的电阻。

 

这是适用于所有NTC型电阻器的通用曲线拟合方程。对于大多数应用来说,温度和电阻之间的近似值“足够好”。

注意,等式需要常数A,B和C.这些对于每个热敏电阻是不同的,需要给出或计算。由于存在三个未知数,因此在一定温度下需要进行三次电阻测量,然后可以使用这三种方程来求解这些常数。

即使对于我们这些代数向导的人来说,这仍然是太多的工作。

相反,有一个更简单的方程式不太准确但只有一个常数。常数用β表示,因此该方程称为β方程。

 

 

1T=1To+(1β)ln(RRo)

 

 

其中R o是参考温度T o的电阻(例如,室温下的电阻)。β通常在数据表中给出 - 如果没有,您只需要一次测量(一个等式)来计算它。这是我将用于热敏电阻接口的公式,因为它非常简单,并且是我遇到的最简单的方法,无需线性化热敏电阻的响应。

 

用Arduino测量电阻

现在我们已经完成了我们的方法,我们需要弄清楚如何用Arduino实际测量电阻,然后才能将这些信息输入β方程。我们可以使用分压器来做到这一点: