ARM技术论坛
直播中

尹家军

11年用户 405经验值
擅长:MEMS/传感技术 测量仪表 嵌入式技术 接口/总线/驱动 控制/MCU
私信 关注
[经验]

一种基于NTC的控温电路及软件实现

` 本帖最后由 foxclever 于 2017-11-26 09:38 编辑


NTC(Negative Temperature Coefficient)是一种随温度上升时,电阻值呈指数关系减小的热敏电阻。应用广泛,最近我们就采用了NTC来控制加热并测温,并达到了预期的效果。
1、硬件设计
我们使用三极管作为加热元件,通过NTC来控制通过三极管的电流,以起到控制温度的作用,至于温度控制到多少,可以通过调节电位器来控制。同时使用另一个NTC来测量当前的温度。电路图如下:
13-1.png
                              
上图中我们通过一个电桥来采集NTC电阻的变化,因为电阻的变化会引起C17两端电压的变化。温度越高NTC电阻越小,C17两端电压差就越大,反之越小。我们采用了25摄氏度时,阻值为10K的NTC。不难推断出输出电压与NTC电阻值得关系。当输出电压为0V时,电阻约25K,查表可知唯独为5摄氏度左右。当输出电压为5V时,电阻值接近0,查表可知在100摄氏度以上。职业便是这个电路的理论测量范围。
2、软件设计
前面我们设计了测量电路,也分析了检测电压与NTC电阻制的关系。接下来我们主要讨论一下软件设计。软件的设计我们采用了公式法和查表法两种方式来获取温度值。
1)公式法
我们前面已经提到过,NTC是一种随温度上升时,电阻值呈指数关系减小的热敏电阻。而这种指数关系具体如下:
13-2.png
其中,B是NTC的常数,每种为固定值。Rt是NTC的电阻,R为标称25摄氏度时的电阻。T1是Rt对应的开氏温度,T2是标称的开氏温度。于是我们就可以推导出有电阻计算温度的公式:
13-3.png
根据以上公式我们可以实现:
/*公式法计算NTC温度值*/
static float FormulaNTCTemperature(floatresistance)
{
  floattemp;
  floatresult=0.0;
  
result=resistance/NTC_NOMINAL_RESISTANCE;
result=(log(result)/NTC_NOMINAL_CONSTANT)+(1/(NTC_NOMINAL_TEMPERATURE+KELVIN_CONSTANT));
temp=1/result-KELVIN_CONSTANT;
  
  returntemp;
}
2)查表法
查表法顾名思义就是通过电阻分度表来获取温度区间,再做拟合。首先我们需要建立相应的表我们定义为数组。有了分度表实现也就简单了,但需要注意两端极限位置的处理。具体实现如下:
/*查表法计算NTC温度值*/
static float LookupNTCTemperature(float resistance)
{
  floattemp;
  uint16_tindex=NTC_TABLE_LENGTH+10;
  
index=FindTargetLocation(resistance);
  
if(index<=0)
  {
   temp=ntcValueTable[0][0];
  }
  elseif(index>=NTC_TABLE_LENGTH)
  {
   temp=ntcValueTable[0][NTC_TABLE_LENGTH-1];
  }
  else
  {
    floatlowT=ntcValueTable[0][index-1];
//    floathighT=ntcValueTable[0][index];
    floatlowR=ntcValueTable[1][index-1];
    floathighR=ntcValueTable[1][index];
   
   temp=((resistance-lowR)*0.5)/(highR-lowR)+lowT;
  }
  
  returntemp;
}
/*查找目标位置*/
static uint16_t FindTargetLocation(floatresistance)
{
  uint16_tposition=0;
while(ntcValueTable[1][position]>resistance)
  {
   if(position
    {
     position++;
    }
    else
    {
     position++;
     break;
    }
  }
  
  returnposition;
}
欢迎关注:

` qrcode_for_gh_9ce4d0a44638_430.jpg

更多回帖

×
20
完善资料,
赚取积分