快捷搜索:  汽车  科技

引脚带绝缘的ptc热敏电阻(PTC-KTY84系列热敏电阻查表算法)

引脚带绝缘的ptc热敏电阻(PTC-KTY84系列热敏电阻查表算法)

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

引脚带绝缘的ptc热敏电阻(PTC-KTY84系列热敏电阻查表算法)(1)

引脚带绝缘的ptc热敏电阻(PTC-KTY84系列热敏电阻查表算法)(2)

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

电阻分压公式: Rt/(R1 Rt)*4096

引脚带绝缘的ptc热敏电阻(PTC-KTY84系列热敏电阻查表算法)(3)

//根据上面的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; }

猜您喜欢: