NTC电阻计算方法

最近使用使用到了NTC电阻,在网上找温度的计算方式,发现资料比较乱,想想,自己写一个得了。通过NTC阻值来计算温度的方式主要有两种,查表法和公式法,本文主要介绍公式法。

实例:

//实际应用
int main(void)
{
  unsigned short t;
  ntc_typedef ntc;
  ntc.B = 3950;//NTC常数,NTC规格书里面有
  ntc.T0 = 47;//NTC常温下的阻值
  ntc.ad = 2048;//ADC采集的电压值
  
  t = calculate_ntc_temp(&ntc);//实际温度值需要除以100
}

下面是具体函数:

typedef struct
{
  unsigned short ad;//ADC通道采集回来的AD值
  unsigned short B;//B常数
  unsigned char T0;//25摄氏度的阻值(千欧)
	
}ntc_typedef;

定义一个结构体,这三个参数是必须要的,第一个是ADC NTC对应通道采集回来了的ADC值,第二个是B常数,NTC的规格书上面有,第三个就是标准温度下的NTC阻值,单位是千欧;

unsigned short calculate_ntc_temp(ntc_typedef *ntc)
{
  float Temp = 0;
	float n_log = 0;
	float r;
	unsigned short t;
	
  r = (((ntc->T0) * 4096) / (ntc->ad)) - (ntc->T0);
  Temp = 298.15 * (ntc->B);
  n_log = log(r) - log((ntc->T0));
  Temp = Temp / ((ntc->B) + 298.15 * n_log);
  Temp = Temp - 273.15;
  t = (unsigned short)(Temp * 100);
  return t;
}

这个函数返回的温度放大了100倍,精确到小数点后两位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值