#include <math.h>
float T_c=0.0; //温度值
// 定义常量
#define R_FIXED 10000.0 // 固定电阻值10kΩ
#define B_CONST 3950.0 // NTC的B常数
#define T0 298.15 // 25℃转换为开尔文
#define R0 10000.0 // NTC在25℃时的电阻值10kΩ
float calculate_temperature(float voltage) {
float R_ntc, T;
float V_supply = 3.3; // 电源电压3.3V
// 计算NTC电阻值
R_ntc = R_FIXED * (V_supply / voltage - 1);
// 计算温度(开尔文)
T = 1 / (1 / T0 + log(R_ntc / R0) / B_CONST);
// 转换为摄氏度
T = T - 273.15;
return T;
}
T_c=calculate_temperature( filtered_voltage[1]); //电压转温度计算 filtered_voltage[1]为ADC采样转换后电压
要求不高可以使用上面程序,按硬件修改相应电阻值 |