NTC热敏电阻温度测量

Posted 旧年不在666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NTC热敏电阻温度测量相关的知识,希望对你有一定的参考价值。

NTC热敏电阻温度测量

一、平台

  • 芯片:STM32F103RDT6

二、电路图

  • 如下图:主控通过RH_ALERT点的电压值就可以计算出当前的温度值,R35阻值为4.7K

在这里插入图片描述

三、测量原理

  • NTC热敏电阻阻值和温度的关系:Rt = Rp * EXP (B * (1/T1 - 1/T2))
    • T1和T2指的都是开尔文温度,K度=273.15(绝对温度)
    • T2 = K + 25 = 273.15 + 25
    • Rt是热敏电阻在温度T1下的阻值
    • Rp是热敏电阻在常温T2下的标称阻值
    • B是热敏电阻的系数
  • 通过以上公式得:T1 = (1 / (ln(Rt / Rp) / B + 1/T2)) - K + 0.5(温度补偿)
  • 通过以上表达式可知测量原理为:ADC电压值Rt~T1
/******************************************************************************
 * @Function: bsp_get_temp_val
 * @Description: 获取温度传感器的数据
 * @Input: temp:传入的存储温度信息结构体的地址
 * @Output: None
 * @Return: void
 * @Others: Rt = Rp * EXP(B*(1/T1 - 1/T2))
 * @param {temp_stu_t} *temp
*******************************************************************************/
void bsp_get_temp_val(temp_stu_t *temp)
{
    //常数B
    float B = 3380;
    //常温(25℃)下热敏电阻的标称阻值阻值
    float Rp = 10000;
    //分压电阻的阻值
    float Rd = 4700;
    //开尔文温度
    float K = 237.15;
    //25℃对应的华摄氏度
    float T2 = K + 25;

    temp->adc_val = drv_get_temp_adc_convert_value();
    temp->vol_val = (float)temp->adc_val / 4096 * 3.3;
    temp->Rt = (Rd * temp->vol_val) / (3.3 - temp->vol_val);
    temp->val = (1 / (1/T2 + log(temp->Rt/Rp) / B)) - K + 0.5;
}

以上是关于NTC热敏电阻温度测量的主要内容,如果未能解决你的问题,请参考以下文章

请教下高手用单片机的AD+NTC热敏电阻做温度计,能不能用单片机计算出取样到的温度值来显示

NTC热敏电阻目前常用的采用电桥和单片机测量方法

单片机测温,用NTC,那个NTC表格是怎么得出来的?

电池中的NTC电阻是啥电阻

NTC热敏电阻25度10K,29度8K,60度是多少?怎么算出来的?

一种基于NTC的控温电路及软件实现