KTY84系列广泛的应用于电机的过温保护,属于正温度系数热敏电阻。采样电路也和NTC差不多非常简单,直接采用电阻分压,然后直接用单片机读取。当然实际电路你可能会加入滤波电容,再加个电压跟随器,以得到更好的效果。


温度范围在:-40 ~ 180度,同样我们每10度取一个点,根据器件说明书里温度-电阻表对照表。 我使用12位ADC,所以满度值为:4096。(参考电压为3.3V时, ADC值=4096)
电阻分压公式: Rt/(R1+Rt)*4096

//根据上面的EXCEL表,在代码里建个表.
#define INVALID_TEMP (int)32767
#define MAX_PTC_TABLE_CT 23
const int Table_PTC[MAX_PTC_TABLE_CT]={
0x26F,0x29E,0x2CC,0x2FE,0x331,
0x364,0x39A,0x3D0,0x406,0x43E,
0x476,0x4AD,0x4E6,0x51E,0x555,
0x58D,0x5C4,0x5FB,0x631,0x667,
0x69C,0x6CF,0x703
};
/*正温度系数和负温度系数的查表顺序是相反了,这里可以和前面我发的NTC的查表法做一个对照*/
int Temp_Convert_PTC_By_Table(uint16 adc_raw_value)
{
int i,tmp=INVALID_TEMP;
for(i=0;i<MAX_PTC_TABLE_CT;i++)
{
if (adc_raw_value <= Table_PTC[i])
{
tmp=(i-1)*10-40;
//calculate decimal part
if ((i>=0)&&(i<MAX_PTC_TABLE_CT-1))
{
tmp=tmp+(int)(((float)(adc_raw_value-Table_PTC[i-1])/(float)(Table_PTC[i]-Table_PTC[i-1]))*10.0+0.5);
}
break;
}
}
return tmp;
}

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.sumdns.com/2932.html
如若转载,请注明出处:https://www.sumdns.com/2932.html