float Regression_Ext_Temp(uint16_t tmpAD) { float Vtemp,Rtemp,temp; if(tmpAD<=72) { return -274; } Vtemp = (tmpAD*3300.0)/4096; Rtemp = Vtemp/(3300.0 - Vtemp)*10000.0; temp = (1/(log(Rtemp/10000.0)/3950.0 + (1/(273.15 + 25)))) - 273.15 + 0.5; return temp; } float Regression_MCU_Temp(uint16_t mcu_temp_AD) { float mcu_temp_result; mcu_temp_result=(float)(55+(100*((float)(mcu_temp_AD) - AD_CAL1))/(AD_CAL2 - AD_CAL1)); return mcu_temp_result; }这两段把Ad值转换为实际温度用的是什么公式
时间: 2024-04-01 10:37:58 浏览: 115
这两段函数分别用来将AD值转换为实际温度,采用的是不同的转换公式:
1. Regression_Ext_Temp函数:这个函数用来将外部温度传感器的AD值转换为实际温度。其转换公式为:
$$
T=\frac{1}{\ln(\frac{R}{R_0})/B+\frac{1}{T_0}}-273.15+0.5
$$
其中,$R$为传感器电阻值,$R_0=10000\Omega$为参考电阻值,$B=3950K$为参考参数,$T_0=273.15+25=298.15K$为参考温度。根据电阻和温度之间的关系,可以推导出上述公式。
2. Regression_MCU_Temp函数:这个函数用来将MCU内部温度传感器的AD值转换为实际温度。其转换公式为:
$$
T=55+\frac{(T_2-T_1)\times(AD-AD_1)}{(AD_2-AD_1)}
$$
其中,$T_1=25^\circ C$和$T_2=125^\circ C$为两个参考温度,$AD_1$和$AD_2$为对应的AD值,都是在参考温度下测量的。根据线性关系,可以推导出上述公式。
阅读全文