|
#include <math.h>
float T_c=0.0; //溫度值
// 定義常量
#define R_FIXED 10000.0 // 固定電阻值10kΩ
#define B_CONST 3950.0 // NTC的B常數(shù)
#define T0 298.15 // 25℃轉(zhuǎn)換為開爾文
#define R0 10000.0 // NTC在25℃時的電阻值10kΩ
float calculate_temperature(float voltage) {
float R_ntc, T;
float V_supply = 3.3; // 電源電壓3.3V
// 計(jì)算NTC電阻值
R_ntc = R_FIXED * (V_supply / voltage - 1);
// 計(jì)算溫度(開爾文)
T = 1 / (1 / T0 + log(R_ntc / R0) / B_CONST);
// 轉(zhuǎn)換為攝氏度
T = T - 273.15;
return T;
}
T_c=calculate_temperature( filtered_voltage[1]); //電壓轉(zhuǎn)溫度計(jì)算 filtered_voltage[1]為ADC采樣轉(zhuǎn)換后電壓
要求不高可以使用上面程序,按硬件修改相應(yīng)電阻值 |
|