NTC热敏电阻测温C程序设计

1 、NTC热敏电阻简介

       此次测温使用的NTC热敏电阻随着温度的升高而降低阻值(即负温度系数)。阻值即为NTC的标称阻值,大多数情况下即华氏25℃时的阻值,例如10K的NTC热敏电阻,即它在25℃时阻值为10KΩ,当然也有些特殊的阻值是以其它温度为标称的;B值是材料常数,其由制成它的陶瓷材料确定,并描述在两个温度点之间的特定温度范围内的电阻(R/T)曲线的梯度。每种热敏电阻材料将具有不同的材料常数,因此具有不同的阻值与温度曲线、温度与阻值表。

      NTC热敏电阻的电气参数主要关注:封装、B值、温度、NTC阻值、阻值公差(例如:0805 3950K 25℃ 10KΩ ±1% );根据使用用途不同选用不同封装、B值、NTC阻值、阻值公差的NTC热敏电阻。

属性参数值
商品目录NTC热敏电阻
阻值(25℃)10kΩ
电阻精度±1%
B值(25℃/50℃)3950K
B值(25℃/75℃)-
B值(25℃/85℃)-
B值(25℃/100℃)-
功率200mW
B值精度±1%
最大稳态电流(25℃)440uA
工作温度-55℃~+125℃

 截图来自深圳市敏创电子有限公司 (thermistors.cn) 

       通过上图曲线可以看出NTC阻值与温度相关但不是呈线性关系,与Rt=R*EXP(B*(1/T1-1/T2))相关,处理器取得的ADC数据想要转换成对应实际温度,就必须对数据进行处理。

方法1:可以将对应温度的NTC阻值,通过计算ADC值写到数组中去,然后通过查表方式得到温度值;

方法2:可以通过热敏电阻Rt=R*EXP(B*(1/T1-1/T2))计算方式得到。

2、电路应用原理图 

       若ADC端口处电流过小,单片机或者FPGA等处理器无法有效采集,建议加电压跟随器电路 ;预防ESD,建议ADC的处理器IO口增加ESD管。NTC热敏电阻可上拉或者下拉,即NTC与RES位置互换(计算分压或者ADC数据时需要根据实际电路)但建议NTC作下拉处理,因为VCC可远离NTC位置,打ESD时需要经过上拉电阻再到VCC,可有效避免ESD等干扰。

 3、温度与阻值表

100K MF58系列 热敏电阻 在0°C至200°C范围内±1°C 100KOhm@25°C| @ 25°C时100000欧姆| 基于FENWALL CURVE 16 | B值曲线为3950K

温度与阻值表

温度(℃)阻值(Ω)温度(℃)阻值(Ω)温度(℃)阻值(Ω)温度(℃)阻值(Ω)
-403273083.321119189.18211914.21432143.5
-393062660.622114027.78311537.81442091.6
-382867207.82310911884111751452041.1
-37268556124104446.48510825.31461992
-3625166572510000086104881471944.3
-352359518.62695766.98710162.81481897.9
-342213250.52791735.8889849.11491852.8
-332077032.22887895.9899546.51501808.9
-321950107.92984237.3909254.61511766.3
-311831784.73080750.4918972.91521724.8
-301721425.53177426.49287011531684.5
-291618444.23274256.8938438.51541645.2
-281522300.93371233.6948185.11551607
-271432499.13468349.4957940.41561569.9
-261348580.93565597.1967704.21571533.8
-251270124.336629709774761581498.6
-241196740.13760461.8987255.51591464.3
-231128069.13858066.4997042.51601431
-221063779.73955778.41006836.71611398.6
-211003565.74053592.31016637.81621367
-20947143.94151503.11026445.51631336.3
-19894252.442495061036259.71641306.3
-18844649.24347596.610460801651277.2
-17798109.94445770.51055906.21661248.8
-16754426.94544023.81065738.11671221.2
-157134084642352.51075575.61681194.2
-14674874.94740753.11085418.31691168
-136386624839222.21095266.11701142.4
-12604616.34937756.41105118.91711117.5
-11572594.95036352.71114976.41721093.2
-105424665135008.21124838.41731069.6
-9514106.55233720.11134704.91741046.5
-8487402.35332485.81144575.61751024
-7462247.15431302.71154450.41761002.1
-6438542.35530168.61164329.2177980.8
-5416195.75629081.11174211.7178960
-4395121.95728038.11184098179939.6
-3375241.15827037.61193987.8180919.8
-23564795926077.61203881181900.5
-1338766.36025156.41213777.5182881.7
0322038.46124272.21223677.2183863.3
13062356223423.31233579.9184845.4
2291299.96322608.21243485.7185827.9
3277180.46421825.41253394.3186810.9
4263827.66521073.41263305.7187794.2
5251195.56620350.91273219.7188778
6239241.36719656.51283136.3189762.1
7227924.96818989.21293055.5190746.7
8217208.76918347.71302977191731.6
9207057.67017730.81312900.9192716.8
10197438.97117137.61322827193702.4
11188321.67216567.11332755.3194688.4
12179676.97316018.11342685.7195674.7
13171477.97415489.91352618.2196661.3
141636997514981.61362552.6197648.2
15156316.67614492.31372488.9198635.4
16149308.37714021.31382427.1199622.9
17142653.37813567.71392367.1200610.8
18136331.77913130.91402308.7
19130325.28012710.21412252.1
20124616.58112304.81422197

 4、热敏电阻测温C程序设计

#include <stdio.h>
#include <math.h>
 
typedef struct
{
    double          sys_vol;     /* System Voltage */
    unsigned int    volt_res;    /* Voltage divider resistance */
    unsigned int    ntc_res;     /* Thermistor nominal resistance value */
    unsigned int    hex_x;       /* The ADC resolution -12Bit_4096 10Bit_1025 8Bit_256 */
    unsigned int    b_x;         /* B value of thermistor */
}ntc_val_t;
 
void ntc_init(ntc_val_t *val,
              double sys_vol,
              unsigned int volt_res,
              unsigned int ntc_res,
              unsigned int hex_x,
              unsigned int b_x)
{
    val->sys_vol=sys_vol;
    val->volt_res=volt_res;
    val->ntc_res=ntc_res;
    val->hex_x=hex_x;
    val->b_x=b_x;
}
 
/**
 * This function converts the ADC value to a temperature value.
 * Rt=R*EXP(B*(1/T1-1/T2))
 *
 * @param NTC initializes the structure.
 * @param ADC values
 *
 * @return NTC temperature
 */
double algorithm_ntc(ntc_val_t *val,unsigned int adc_val)
{
    double v_x;    /* Measured voltage value */
    double rt_x;   /* Measure the resistance */
    double temp_x; /* Measure the temperature */
 
    v_x = val->sys_vol - ((double)adc_val / val->hex_x * val->sys_vol);
    rt_x = (val->volt_res * v_x) / (val->sys_vol - v_x);
    printf("NTC阻值:%.2fKΩ\n",rt_x);
    /*
    ###NTC作下拉使用时使用此,同时建议NTC作下拉使用、可有效避免干扰###
    temp_x = ( 1 / (log(val->ntc_res/rt_x) / val->b_x + (1 / 298.15) ) ) - 273.15;
    */
    temp_x = ( 1 / (log(rt_x / val->ntc_res) / val->b_x + (1 / 298.15) ) ) - 273.15;
    return temp_x;
}
 
int main(void) {
    ntc_val_t val;
    double temp_adc;
    unsigned int adc_value=494;
    ntc_init(&val,3.3,15,100,4096,3950);
    temp_adc=algorithm_ntc(&val,adc_value);
    printf("温度:%.2f℃\n",temp_adc);
    return 0;
}

开始运行...

NTC阻值:109.37KΩ
温度:23.00℃

运行结束。

  • 60
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
NTC热敏电阻是一种能够随温度变化而改变电阻值的电子元件。利用NTC热敏电阻测温电路设计,可以实现对温度的精确监测和控制。 在NTC热敏电阻测温电路中,首先需要确定温度传感器的工作电压范围和最大耗散功率。根据NTC热敏电阻的特性曲线,选择合适的NTC热敏电阻,通常是根据所需的温度范围和精度进行选择。 为了实现对温度的测量,可以采用电桥测量电路。电桥由NTC热敏电阻、一个稳压电源、一个位移传感器和一个参考电阻组成。当温度改变时,NTC热敏电阻的电阻值发生变化,导致电桥的平衡状况改变,从而可以通过测量位移传感器输出的电压变化来计算温度。 为了保证测温的精度和可靠性,需要考虑NTC热敏电阻的线性度、响应时间和稳定性。在选取NTC热敏电阻时,可以选择具有较小的温度系数和较快的响应时间的型号。 此外,为了提高测温电路的稳定性和减小测量误差,可以采用温度补偿电路。温度补偿电路利用一个参考温度源和一个参考电阻来消除环境温度对测量结果的影响,从而提高测温的准确性。 综上所述,NTC热敏电阻测温电路设计需要选取适当的NTC热敏电阻,并结合电桥测量和温度补偿电路来实现对温度的精确测量和控制。通过合理选择元器件和优化电路设计,可以获得高精度、稳定可靠的温度测量系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wutianxin0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值