地方门户网站规划,怎样在凡科免费做网站,为什么做网站要服务器 和域名,传奇怎么做网站NTC#xff08;Negative Temperature Coefficient#xff09;是一种随温度上升时#xff0c;电阻值呈指数关系减小的热敏电阻。应用广泛#xff0c;最近我们就采用了NTC来控制加热并测温#xff0c;并达到了预期的效果。
1、硬件设计
我们使用三极管作为加热元件#x…NTCNegative Temperature Coefficient是一种随温度上升时电阻值呈指数关系减小的热敏电阻。应用广泛最近我们就采用了NTC来控制加热并测温并达到了预期的效果。
1、硬件设计
我们使用三极管作为加热元件通过NTC来控制通过三极管的电流以起到控制温度的作用至于温度控制到多少可以通过调节电位器来控制。同时使用另一个NTC来测量当前的温度。电路图如下 上图中我们通过一个电桥来采集NTC电阻的变化因为电阻的变化会引起C17两端电压的变化。温度越高NTC电阻越小C17两端电压差就越大反之越小。我们采用了25摄氏度时阻值为10K的NTC。不难推断出输出电压与NTC电阻值得关系。当输出电压为0V时电阻约25K查表可知唯独为5摄氏度左右。当输出电压为5V时电阻值接近0查表可知在100摄氏度以上。职业便是这个电路的理论测量范围。
2、软件设计
前面我们设计了测量电路也分析了检测电压与NTC电阻制的关系。接下来我们主要讨论一下软件设计。软件的设计我们采用了公式法和查表法两种方式来获取温度值。
2.1、公式法
我们前面已经提到过NTC是一种随温度上升时电阻值呈指数关系减小的热敏电阻。而这种指数关系具体如下 其中B是NTC的常数每种为固定值。Rt是NTC的电阻R为标称25摄氏度时的电阻。T1是Rt对应的开氏温度T2是标称的开氏温度。于是我们就可以推导出有电阻计算温度的公式 根据以上公式我们可以实现
/*公式法计算NTC温度值*/
static float FormulaNTCTemperature(float resistance)
{float temp;float result0.0;resultresistance/NTC_NOMINAL_RESISTANCE;result(log(result)/NTC_NOMINAL_CONSTANT)(1/(NTC_NOMINAL_TEMPERATUREKELVIN_CONSTANT));temp1/result-KELVIN_CONSTANT;return temp;
}
2.2、查表法
查表法顾名思义就是通过电阻分度表来获取温度区间再做拟合。首先我们需要建立相应的表我们定义为数组。有了分度表实现也就简单了但需要注意两端极限位置的处理。具体实现如下
/*查表法计算NTC温度值*/
static float LookupNTCTemperature(float resistance)
{float temp;uint16_t indexNTC_TABLE_LENGTH10;indexFindTargetLocation(resistance);if(index0){tempntcValueTable[0][0];}else if(indexNTC_TABLE_LENGTH){tempntcValueTable[0][NTC_TABLE_LENGTH-1];}else{float lowTntcValueTable[0][index-1];
// float highTntcValueTable[0][index];float lowRntcValueTable[1][index-1];float highRntcValueTable[1][index];temp((resistance-lowR)*0.5)/(highR-lowR)lowT;}return temp;
}/*查找目标位置*/
static uint16_t FindTargetLocation(float resistance)
{uint16_t position0;while(ntcValueTable[1][position]resistance){if(positionNTC_TABLE_LENGTH-1){position;}else{position;break;}}return position;
}
3、小结
使用NTC作为测温和控温的元件所得到的结果基本与预期的一致。但在控温的精度和响应速度上略有不足对于一般的应用是完全足够的。我们的应用对温度的稳定性要求比较高所以我们后续做了一些改进。
为了取得更好的控制效果我们引入一个类似于专家PID的控制器对加热电源进行PWM调节类似于与NTC的控制形成串级控制得到了良好的效果。在比较好的情况下最终温度可以稳定在0.1度的范围内。