打印
[LKS32 软件]

利用热敏电阻通过ADC测温

[复制链接]
227|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuotuzi|  楼主 | 2023-2-17 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <math.h>
// define range of temperature measurement
#define MIN_TEMP -20
#define MAX_TEMP 80
// define voltage and resistor values
#define VREF 5 // reference voltage
#define R25 10000 // resistance [url=home.php?mod=space&uid=72445]@[/url] 25degC

/* measure the resistance of the thermistor */
int measure_resistance(void){
    ...
}

/* Calculate temperature from resistance value */
float calculate_temperature(int resistance) {
    double temp;
    temp = log(resistance/R25); // natural logarithm
    temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * temp * temp )) * temp ); // Steinhart-Hart equation
    temp = temp - 273.15; // Convert Kelvin to Celsius
    temp = (temp * 9.0)/ 5.0 + 32.0; // Convert to Fahrenheit
    if (temp<MIN_TEMP || temp > MAX_TEMP ) {
        // invalid temperature, handle error
    }
    return temp;
}

/* main function */
int main( void ) {
    int resistance;
    float temperature;
   
    resistance = measure_resistance();
    temperature = calculate_temperature(resistance);

    printf("The temperature is: %.1f °F", temperature);

    return 0;

}


使用特权

评论回复
沙发
szt1993| | 2023-2-23 14:49 | 只看该作者
C=1/(LN(RT/R25)/B+1/298.15)-273.15

使用特权

评论回复
板凳
NIMIJACK| | 2023-3-2 10:16 | 只看该作者
你这计算量也太大了吧,并且浮点数还不加f

使用特权

评论回复
地板
caigang13| | 2023-3-9 22:25 | 只看该作者
你这附点数有必要那么多小数位嘛?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

161

主题

3188

帖子

7

粉丝