使用NTC热敏电阻测量热敏电阻/温度
发布时间:2019-01-16 文章来源:敏创原创 点击次数:
次
热敏电阻(热敏电阻)是温度相关的可变电阻。有两种类型的热敏电阻,即正温度系数(PTC)和负温度系数(NTC)。当温度升高时,PTC热敏电阻会增加,NTC热敏电阻会降低。当温度降低时,它们表现出相反的响应。
两种类型的热敏电阻都用于各种应用领域。但是,这里的重点是使用NTC热敏电阻来测量基于微控制器的应用中的温度。
热敏电阻规格
以下NTC热敏电阻参数可在制造商的数据表中找到。
电阻
这是制造商规定的温度下的热敏电阻,通常为25°C。
公差
表示电阻与指定值的差异程度。通常以百分比表示(例如1%,10%等)。例如,如果具有10%容差的热敏电阻在25°C时的指定电阻为10,000欧姆,那么该温度下的测量电阻范围为9,000欧姆至11000欧姆。
B(或Beta)常数
A值,表示在指定温度范围内电阻和温度之间的关系。例如,“3380 25/50”表示在25℃至50℃的温度范围内β常数为3380。
贝塔宽容常数
百分比贝塔不变的耐受性。
工作温度范围
最小和最大热敏电阻工作温度。
热时间常数
当温度变化时,达到新旧温度之差的63%所需的时间。
热耗散恒定
热敏电阻在通过电流时会发生自热。这是将热敏电阻温度提高1°C所需的功率。它以毫瓦/摄氏度(mW /℃)表示。通常,应保持低功耗以防止自热。
最大允许功率
最大功耗。它以瓦特(W)表示。超过此规格将导致热敏电阻损坏。
电阻温度表
热敏电阻工作温度范围内的电阻值和相关温度表。热敏电阻在相对有限的温度范围内工作,通常为-50至300℃,具体取决于结构和涂层的类型。
热敏电阻对温度的响应
与任何电阻一样,您可以使用万用表上的欧姆表设置来测量热敏电阻的电阻。万用表上显示的电阻值应与热敏电阻附近的环境温度相对应。电阻会随温度变化而变化。
图1:热敏电阻的电阻随温度变化。
图2:热敏电阻温度 - 电阻曲线-40°C至60°C
图2显示了NTC热敏电阻在-40°C和60°C之间的响应。从图中可以看出,热敏电阻具有很高的灵敏度。温度的微小变化会导致电阻发生很大变化。另请注意,此热敏电阻的响应不是线性的。也就是说,给定温度变化的电阻变化在热敏电阻的温度范围内不是恒定的。
图4:热敏电阻分压器。
图5:温度 - 电压曲线。
首先找到热敏电阻,
图6:具有公共参考电压的分压器电路和ADC。
制造商的数据表包括热敏电阻电阻值列表和相应温度范围。处理这种非线性响应的一种解决方案是在代码中包含一个包含此温度电阻数据的查找表。在计算电阻(稍后描述)后,您的代码会在表格中搜索相应的温度。
线性化热敏电阻响应
在硬件方面,您可以通过将固定电阻并联或串联来线性化热敏电阻响应。这种改进将以一定的准确性为代价。电阻器的值应等于感兴趣的温度范围中点的热敏电阻器电阻。
热敏电阻 - 并联电阻组合
图3显示了通过将10K电阻与热敏电阻并联放置产生的S形温度电阻曲线,该热敏电阻在25°C时电阻为10K。这使得0°C和50°C之间的曲线区域相当线性。请注意,最大线性度在中点附近,即25°C。
热敏电阻 - 串联电阻组合(分压器)
微控制器捕获模拟数据的常用方法是通过模数转换器(ADC)。您无法通过ADC直接读取热敏电阻。串联热敏电阻 - 电阻组合,如图4所示,提供了一种分压器形式的简单解决方案
图4:热敏电阻分压器。
使用以下公式计算分压器输出电压:
Vo = Vs *(R0 /(Rt + R0))
图5中的线性化温度 - 电压曲线显示了响应温度变化的分压器输出电压Vo的变化。源电压Vs为5伏,热敏电阻器电阻Rt在25℃时为10K欧姆,串联电阻器R0为10K欧姆。与上面的并联电阻 - 热敏电阻组合类似,此组合在曲线中点附近具有最大线性度,即25°C。
图5:温度 - 电压曲线。
注意,由于Vs和R0是恒定的,输出电压由Rt确定。换句话说,分压器将热敏电阻器电阻(以及温度)转换为电压。非常适合输入微控制器ADC。
首先找到热敏电阻,
将ADC数据转换为温度要将ADC数据转换为温度,首先要找到热敏电阻,然后用它来查找温度。
你可以重新排列上面的分压器方程来求解热敏电阻Rt:
Rt = R0 *((Vs / Vo) - 1)
如果ADC参考电压(Vref)和分压器电源电压(Vs)是相同的那么以下是真实的:
adcMax / adcVal = Vs / Vo
也就是说,分压器输入电压与输出电压的比率与ADC全范围值(adcMax)与ADC返回的值(adcVal)的比率相同。如果您使用的是10位ADC,则adcMax为1023。
图6:具有公共参考电压的分压器电路和ADC。
现在您可以用等式中的ADC值的比率替换电压比来求Rt:
Rt = R0 *((adcMax / adcVal) - 1)
例如,假设一个热敏电阻在25°时具有10K欧姆的电阻C,10位ADC,adcVal = 366.
Rt = 10,000 *((1023/366 ) - 1)
= 10,000 *(2.03)
= 17,951欧姆
一旦计算出Rt的值,就可以使用查找表包含温度电阻数据,供您的热敏电阻找到相应的温度。在上面的例子中,热敏电阻的计算电阻对应于大约10℃的温度。
9 18,670
10 17,926
11 17,214
制造商的数据手册可能未包含热敏电阻的所有温度电阻值,或者您可能没有足够的存储空间来包含查找表中的所有值。在任何一种情况下,您都需要包含代码以在列出的值之间进行插值。
通过直接计算温度
或者,您可以使用近似热敏电阻温度响应曲线的公式来计算温度。例如,广泛使用的Steinhart-Hart方程如下所示。它不像制造商的电阻温度数据那么精确。然而,与其他方法相比,它提供了热敏电阻在其工作范围内的响应曲线的更接近的近似值。
1 / T = A + B * ln(R)+ C *(ln(R))^ 3
制造商可以提供或不提供系数A,B和C的值。如果不是,则可以使用测量的耐温度数据导出它们。但是,这超出了本文的范围。相反,我们将使用下面显示的更简单的Beta(或B)参数方程。虽然不如Steinhart-Hart方程准确,但它在较窄的温度范围内仍能提供良好的结果。
1 / T = 1 / T0 + 1 / B * ln(R / R0)
变量T是以开尔文为单位的环境温度,T0通常是室温,也是开尔文(25°C = 298.15K),B是β常数,R是环境温度下的热敏电阻(与Rt相同), R0是温度T0时的热敏电阻。T0,B和R0的值可在制造商的数据表中找到。您可以如前所述为Rt计算R的值。
如果分压器电源电压和Vref相同,则无需知道R0或找到R来计算温度。请记住,您可以根据ADC值的比率写出热敏电阻的等式:
R = R0 *((adcMax / adcVal) - 1)
则:
1 / T = 1 / T0 + 1 / B * ln(R0 * ((adcMax / adcVal) - 1)/ R0)
R0取消,离开:
1 / T = 1 / T0 + 1 / B * ln((adcMax / adcVal) - 1)
取结果的倒数得到以开尔文为单位的温度。
例如,假设热敏电阻分压器电路连接到10位ADC。热敏电阻的β常数为
3380,25 °C时的热敏电阻(R0)为10K欧姆,ADC返回值366. 1 / T = 1 / 298.15 + 1/3380 * ln((1023/366) - 1)
1 / T = 0.003527
T = 283.52K - 273.15K = 10.37°C
示例:简单温度记录仪
图7显示了一个简单的温度记录器,包括Arduino Uno SBC和热敏电阻分压器(右)。分压器输出通过其中一个模拟引脚连接到Arduino的内部10位ADC。Arduino获取ADC值,计算温度,并将其发送到串行监视器进行显示。
图7:温度记录器电路。
- 上一篇:标准RTD和热敏电阻值表
- 下一篇:10K-2热敏电阻输出表
您可能需要以下产品: