资讯详情

外设驱动库开发笔记36:NTC负温度系数热电阻测温驱动

??温度检测在嵌入式产品中非常常见。当成本敏感且精度要求低时,NTC电阻是个不错的选择。在本文中,我们将讨论如何设计和实现一般性NTC为了在后续项目中更方便地重用驱动。

1、功能概述

??NTC是指热敏电阻现象和具有负温度系数的材料。NTC热敏电阻由锰、铜、硅、钴、铁、镍、锌等金属氧化物制成。其电阻率和材料常数随材料成分比例、烧结氛围、烧结温度和结构状态而变化。以碳化硅、硒化锡、氮化钽为代表的非氧化物系NTC热敏电阻材料。因此,在实现小型化的同时,还具有电阻值、温度特性波动小、对各种温度变化响应快的特点,可进行高灵敏度、高精度的检测。

??NTC 热敏电阻是典型的具有温度敏感性的半导体电阻。根据标准IEC 60539-1的规定,NTC电阻与温度之间存在以下关系曲线:

??对于NTC这种电阻与温度的关系也可以用类似的舒徐公式来表示:

??其中,R绝对温度T时,NTC零功率电阻。Ra在绝对温度下Ta时,NTC零功率电阻。

??B值敏电阻器的热敏常数为负温度系数,每种既定材料只有一个B值。B在测量25摄氏度和50摄氏度(或85摄氏度)时,可以计算值。B该值与产品的电阻温度系数正相关,即B值越大,其电阻温度系数越大。

2.驱动设计与实现

??NTC我们已经理解了测温元件的原理,在此基础上,我们可以实现其测温驱动程序。

2.1、对象定义

??我们还是将军NTC作为对象,首先定义对象类型。对于不同的对象NTC有三个参数与自身密切相关,或者一旦制造就不会改变。即B值、标称温度和标称电阻。B值与材料有关。标称温度通常设置为25℃,标称电阻为标称温度下的电阻。因此,我们定义它NTC对象类型如下:

/* 定义NTC电阻测温对象 */ typedef struct NTCObject{      float BValue;       //NTC的B常数      float nominalT;     //NTC标称温度(摄氏度)      float nominalR;     //NTC标称电阻 }NTCObjectType; 

??在一个对象使用之前必须对其实现初始化配置。主要是对指针进行检查及对属性变量和操作指针进行赋值。

/* NTC对象初始化函数 */ void NTCInitialization(NTCObjectType *ntc,float bValue,float nt,float nr) {      if(ntc==NULL)      {         return;      }            ntc->BValue=bValue;      ntc->nominalT=nt;      ntc->nominalR=nr; } 

2.2、对象操作

??在我们实现对象的定义和初始化后,我们可以操作对象来获得温度值。那么如何操作对象来获得温度值呢?我们前面提到过,NTC是一种随温度上升时,电阻值呈指数关系减小的热敏电阻。而这种指数关系就是我们前面提到的电阻与温度的关系表达式。于是我们就可以根据这一表达式推导出有电阻计算温度的公式:

??根据以上公式我们可以通过检测电阻来计算温度:

/*公式法计算NTC温度值*/ float NTCTemperature(NTCObjectType *ntc,float resistance) {  float temp;  float result=0.0;    result=resistance/ntc->nominalR;  result=(log(result)/ntc->nominalR) (1/(ntc->nominalT KELVIN_CONSTANT));  temp=1/result-KELVIN_CONSTANT;    return temp; } 

3.使用驱动器

??接下来,使用我们之前开发的驱动程序来实现NTC检测温度。首先需要使用。NTCObjectType对象类型声明NTC对象变量。

??NTCObjectType ntc;

??该对象变量必须初始化才能使用。因此,我们使用初始化函数初始化该变量:

??NTCInitialization(&ntc,bValue,nt,nr);

??若有多个NTC对象可以通过数组等方式处理。初始化完成后,我们可以操作对象。我们通常使用电桥电路进行检测NTC测量当前温度的电阻。电路图如下:

??在上图中,我们通过电桥收集NTC由于电阻的变化会导致电阻的变化C两端电压的变化。温度越高NTC电阻越小,C两端的电压差越大,反之亦然。当我们使用25摄氏度时,电阻值为10K的NTC。不难推断出输出电压和输出电压NTC电阻值的关系。当输出电压为0时V时,电阻约25K,检查表显示温度约为5摄氏度。当输出电压为5时V当电阻值接近0时,检查表显示在100摄氏度以上。这就是电路的理论测量范围。

??在检测到当前电阻后,我们调用它NTCTemperature(NTCObjectType *ntc,float resistance);计算相应温度值的函数。

4、应用总结

??使用NTC作为温度测量和温度控制元件,结果与预期基本一致。然而,温度控制的精度和响应速度略有不足,这足以用于一般应用。在要求较高的情况下,我们也可以通过软件提高温度控制精度。

??使用NTC作为温度测量元件,需要注意的是,由于电阻值和温度是非线性的,我们解非线性方程可能会造成很大的误差,所以温度测量有时会有很大的误差。NTC温度测量范围非常有限,因此虑。NTC存在较大的个体差异。当然作为一般的应用这些都不是问题。

欢迎关注:

标签: 电阻由温度变化而变化同阻值电阻的功率不同可以混用吗r2868传感器驱动电路

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

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