资讯详情

【STM32F042】使用NTC热敏电阻实现温度测量

1.NTC介绍 NTC是负温度系数的简写,全称是Negative temperature coefficient.这意味着随着温度的升高,电阻值呈下降趋势。它通常被用作温度传感器。有一种电阻值表示负温度系数:

                                                                    RT=R0*exp(B (1/T-1/T0)) 

RT为周围温度T (K) 当时的电阻值,R周围温度为0T0 (K) 当注意这里的温度是开尔文的温度。B为B常数. 请记住这个B常数,它也是材料常数,通常在25摄氏度下测量。B值和电阻的温度系数正相关,也就是B值越大,电阻的温度系数越高。温度系数是指每增加1℃,电阻值的变化率。也就是说,B随着温度的增加,电阻值的变化越大,灵敏度越高.

标题

2.温度测量常用电路 如下图所示,常用的温度测量电阻串联分压,ADC采集方法。根据热敏电阻的特性,设置理想情况VCC=3.3V,在25℃时,Rt = 10KΩ,此时ADC收集到的电压值为3.3V/2 = 1.65V.

3.温度转换 关于ADC这里就不多说收集了。我主要能在这里谈论它ADC转换值后,如何获得温度值。

第一步是找到自己的热敏电阻数据手册,找到B值并查看 它的温度-电阻曲线图,我用的热敏电阻是SDNT1608,阻值10KΩ,精度±1%,B值为3450K(25°C~50°C).如下图所示:

以下是两种温度转换方法:计算法和查表法

计算法 先看计算法 ,回到我们的公式 RT=R0exp(B(1/T-1/T0)),这里R=10K,开氏度 = 摄氏度 273.15,所以T0 = 273.15 25 ,这里的exp()指的是e^()因此,我们可以反映当前的温度:

                                                                     T = 1 / [ln (RT/R0) / B   1/T0] 

那么我们唯一需要知道的就是Rt该值由电阻分压,将热敏电阻两端的电压设置为VRt,固定10K电阻两端的电压为VR,可以知道VR/VRt = R/Rt,从而:

                                                                          Rt = R*(3.3-VR)/VR 

我们实际得到的VR是转换后的ADC值,即VR = 3.3*ADC_Value/4096,整理上述公式。代码如下。需要注意的是,计算的温度是开尔文温度,因此需要减去K值。.5.修正值。如果条件允许,与标准仪器相比,可以获得此值。

///温度转换 //参数:ADC转换值 float temp_trans(u16 ADC_value) { ///数据进入前,可以先做滤波处理 float Rt=0; //NTC电阻 float R=10000; //10K固定电阻 float T0=273.15 25;//转换为开尔文温度 float B=3450; //B值 float Ka=273.15; //K值 float VR=0;///电压值 VR=(float) (ADC_value/4096*3.3); //转换成电压值 Rt=(3.3-VR)*10000/VR;//计算Rt temp=1/(1/T0 log(Rt/R)/B)-Ka 0.5; //计算温度 return temp; } 查表法 一般来说,制造商会提供它NTC如下图所示,基于此表,我们只需计算当前热敏电阻的电阻值Rt,然后查照此表,得到最接近的温度值即可。实际使用中,我们根据使用环境,摘出一部分表,比如我这里需要监控MOS所以我只需要25℃-100℃附近的值。

例子:制造商给出的温度阻值表 为了方便,我们定义了一个数组来存储这些值ADC转换值可以作为计算温度对应的表格ADC的值。请注意,我只做了整数倍的表格。如果需要使用小数点后面的温度,正确的方法是使用公式RT=R0*exp(B (1/T-1/T0))在excel步进值为0.1℃的温度表。这里就不举例了。

已知等式关系:

                                                                    Rt = R*(3.3-VR)/VR          (1)                                                              VR = 3.3*ADC_Value/4096      (2) 

整理两式:

                                     ADC_Value = VR*4096/3.3 =3.3*R/(Rt R)*4096/3.3 = R/(Rt R)*4096 

———————————————— 版权声明:本文为CSDN博主「BadBoyHolly」遵循原创文章CC 4.0 BY-SA版权协议,请附上原始来源链接和本声明。 原文链接:https://blog.csdn.net/BadBoyHolly/article/details/108948128

标签: 电阻由温度变化而变化负温度系数热敏电阻式水传感器9热敏电阻温度系数电阻电阻器ntc水温传感器ntc47k3950温度电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台