深圳市敏创电子有限公司

NTC热敏电阻生产厂家
专注NTC热敏电阻12年,可特殊定制

热门搜索: 热敏电阻厂家 |

您当前所在的位置:主页 > 技术文章 > 技术文章

使用NTC热敏电阻测量温度

时间:2019-01-14 ??来源:敏创电子??编辑:热敏电阻厂家??浏览:

你有没有想过恒温器,汽车发动机,过滤器和3D打印机加热床等设备如何测量温度?这个项目向您展示如何!
在许多项目中,了解温度是一个有用的数据。了解温度有助于我们调节室温,防止发动机过热,确保3D打印机床足够热,使ABS等材料粘在其表面,并防止食物燃烧。
在这个项目中,我们专注于一种可以测量温度的传感器:热敏电阻。
与其他类型的电阻器相比,热敏电阻具有更高的温度灵敏度。
我们可以测量和处理热敏电阻的读数,然后将它们转换为更常见的温度单位。
 
下面是我们将要使用的热敏电阻的图片:
珠子热敏电阻。
 
项目背后的理论
通常,对于使用电阻器的应用,您希望避免在温度变化时电阻发生变化。虽然这在现实生活中并不是完全可能的,但你可以做到这一点,只有很小的电阻变化对应于大的温度变化。如果你不能这样做,电阻器真的会在电路中造成严重破坏。例如,随着环境温度的变化,LED会变亮和变暗。
那么,如果你真的希望LED的亮度是温度的函数,你会怎么做?那么,你需要一个热敏电阻。热敏电阻的电阻变化很大,温度变化很小。为了说明这个概念,请参见下面的图1,其中显示了热敏电阻的典型曲线:

根据您购买的热敏电阻,可以根据不同的范围轻松定制热敏电阻。如您所见,随着温度升高,电阻降低。这是负温度系数电阻器(NTC)的主要特性。
热敏电阻也可用作正温度系数(PTC)。PTC的工作方式是随着温度的升高,电阻增加。但请注意,PTC热敏电阻具有某种临界点,并且在某些温度下会极大地影响电阻,这使得PTC热敏电阻更难以与之接口。因此,大多数低成本温度测量使用NTC热敏电阻。
也就是说,假设我们将在本文的其余部分引用NTC型热敏电阻。
 
找到曲线拟合公式:四种方法
现在我们已经介绍了热敏电阻的一般行为,下一个问题可能就是我们如何用Arduino测量温度。上图中的曲线是非线性的,因此似乎不可能使用简单的线性方程。(实际上,我们可以计算出一个等式。本文稍后将详细介绍。)
那么该怎么办?
在我们继续之前,尝试考虑如何使用Arduino或甚至只是没有微处理器组件的电路。
有几种方法可以解决这个问题。下面讨论四种选择。这远不是每种技术的详尽列表,但它涵盖了一些流行的方法。
 
方法一
一些制造商提供了整个图表,其绘制了温度和电阻的典型值的特定整数范围。在Vishay公司编写的数据表中可以看到一个这样的热敏电阻。
但同样,问题出现在你如何在Arduino中做到这一点。所有这些值都需要硬编码到一个巨大的查找表或很长的“switch ... case”或“if ... then”控制结构中。
如果制造商不提供查找表,则需要由您测量每个点以生成数据。听起来像编程头痛,对吧?但是,这种方法确实有它的位置。例如,如果您手边的项目只检查几个点或保持在一个小范围内,这可能是要走的路。例如,如果您只想测量值何时落在选定的温度范围内,并且LED指示灯亮起以指示每次发生的时间。
但是,在这个项目中,我们想要测量一个接近连续的范围并将其发送到串行监视器,这对我们来说这个方法是错误的。
 
方法二
另一种方法是通过连接一个与热敏电阻并联的电阻来增加外部电路,从而“线性化”热敏电阻的响应。有些IC已经为你准备好了。
选择正确的值并确定如何选择和线性化区域本身就是一篇文章。如果您的微处理器缺少浮点精度(例如PICAXE),方法二非常适合,因为它简化了温度范围到线性响应,并且还使得设计没有微处理器的电路变得更加容易。
对于这个项目,我们有一个微处理器,并将使用整个范围,所以这种方法再次对我们不起作用。
 
方法三
如果你是一个贪婪的惩罚,你可以从数据表中获取表格数据,或者更加耗时,生成你自己开发的数据,通过独立的测量,在Excel等程序中重新创建绘图。从那里,您可以使用曲线拟合功能生成曲线公式。这为您的程序提供了一个方便的公式,但需要时间和数据的预处理。
我们宁愿不被困在分析所有这些数据,尽管方法三是合法的方法。此外,每个热敏电阻都有点不同(如果公差水平非常低,则不是一个大问题)。
 
方法四
对于像热敏电阻这样的器件,存在一般的曲线拟合公式,称为Steinhart-Hart方程。有不同的版本,其中使用了平方和立方项。这是等式的一个版本:
1 / T = A + Bln(R)+ C(ln(R))3
其中R是热敏电阻在温度T下的电阻(以开尔文为单位)。
这种通用曲线拟合方程可以容纳所有NTC型电阻器,因为电阻和温度关系的近似值足以满足大多数应用。
注意,该等式需要三个常数:A,B和C.这些常数对于每个热敏电阻是不同的,必须给出或计算。有三个未知数,您需要在一定温度下进行三次电阻测量。从那里,这些测量产生三个方程来解决这些常数。
即使你是一个代数巫师,这也是很多工作。
幸运的是,有一个更简单的方程不太准确但只有一个常数。常数用β表示,因此该方程称为β方程。
1 / T = 1 / T O +(1 /β)⋅ln(R / R O)
其中R O指的是参考温度T O处的电阻(例如,室温下的电阻)。
β通常在数据表中提供。如果不是,您只需要一次测量(一个等式)来计算它。
所以我们找到了它。这是我们将用于热敏电阻接口的等式和方法,因为编码非常简单,同时也是我们尚未发现的最简单的方法,不需要线性化热敏电阻的响应。
 

测量电阻
由于我们已经找到了正确的方法,我们现在需要弄清楚如何在我们将其插入β方程之前测量电阻。这可以使用分压器完成:



以上是我们热敏电阻的接口电路。每次热敏电阻检测到温度变化时,它都会反映在输出电压中。
通常,我们使用分压器,其公式如下:
V 出 = V 小号 ⋅(R 平衡 / R 热敏电阻 + R 平衡)
但是,我们不希望V out作为答案 - 我们想要R 热敏电阻。我们将解决这个问题:
R 热敏电阻 = R 平衡 ⋅(V s / V out - 1)
我们即将完善,但我们需要测量电压输出和电源电压。这就是Arduino内置ADC的用武之地。
我们可以将电压表示为一定范围内的数字数字。所以,我们的方程结果如下:
R 热敏电阻 = R 平衡 ⋅(D max / D 测量 - 1)
这在数学上是成功的,因为无论我们如何表示电压(以伏特或数字为单位),这些单元抵消了分数中的顶部和底部,留下无量纲数。在那之后,乘以一个阻力,以欧姆为单位得出答案。
我们的D max将是1023,因为它是我们的10位ADC产生的最高数字。测量的 D 将被设置为我们测量的ADC值,范围从低至零到高达1023。
现在,让我们建立!
 
布线
我们将在我们的分压器中使用一个10K欧姆的热敏电阻,以及一个10k欧姆的电阻用于R 平衡。没有给出β,因此需要计算。
 
您将在下面找到完整的原理图。


以下是设置最终应如下所示的内容: