【NTC热敏电阻】NTC电阻测温电路与ADC换算
本文介绍了NTC电阻测温电路的设计与ADC换算方法。电路采用3.3V电源供电,由10kΩ固定电阻和NTC热敏电阻组成分压结构,ADC采样中间节点电压。文章详细推导了从ADC采样值到温度值的转换过程:1)将ADC值转换为电压;2)通过分压公式计算NTC电阻;3)利用Beta模型公式计算绝对温度;4)转换为摄氏温度。文中提供了示例代码实现,并强调需要准确获取NTC的Beta系数以获得精确测温结果。对于
NTC电阻测温电路与ADC换算
一、电路结构
- 电源电压:3.3V
- 电阻分压结构:
3.3V --- R_fixed(10kΩ) ---●--- R_ntc(10kΩ@25℃) --- GND
|
ADC采样

-
说明:
- R_fixed 为固定电阻 10kΩ
- R_ntc 为 NTC 热敏电阻,阻值随温度变化
- ADC 读取的是中间节点的电压值
二、ADC换算电压
设 ADC 分辨率 = 12 位,则满量程 = 4095。
采样结果记为 adc_val,则电压为:
Vadc=adc_val4095×3.3 (V) V_{adc} = \frac{adc\_val}{4095} \times 3.3 \, (V) Vadc=4095adc_val×3.3(V)
三、电阻计算
根据分压公式:
Vadc=RntcRfixed+Rntc×Vcc V_{adc} = \frac{R_{ntc}}{R_{fixed} + R_{ntc}} \times V_{cc} Vadc=Rfixed+RntcRntc×Vcc
整理得:
Rntc=Rfixed×VadcVcc−Vadc R_{ntc} = R_{fixed} \times \frac{V_{adc}}{V_{cc} - V_{adc}} Rntc=Rfixed×Vcc−VadcVadc
四、阻值换算温度
NTC 特性满足 Beta 模型近似:
1T=1T0+1BlnRntcR0 \frac{1}{T} = \frac{1}{T_0} + \frac{1}{B} \ln{\frac{R_{ntc}}{R_0}} T1=T01+B1lnR0Rntc
其中:
- TTT = 热敏电阻的绝对温度 (K)
- T0T_0T0 = 标称温度 (通常 25℃ = 298.15K)
- R0R_0R0 = 标称温度下阻值 (10kΩ@25℃)
- BBB = Beta 系数(典型 3435~3950K,具体看数据手册)
换算摄氏温度:
T℃=T(K)−273.15 T_{℃} = T(K) - 273.15 T℃=T(K)−273.15
五、计算流程总结
- 读取 ADC 值 → 转电压 VadcV_{adc}Vadc
- 由分压公式求 RntcR_{ntc}Rntc
- 代入 Beta 方程求温度(K)
- 转换为 ℃
六、示例代码 (以村田的型号为NCP18XH103F03RB R0603的NTC为例)
#include <math.h>
#define VREF 3.3f
#define ADC_MAX 4095.0f
#define R_FIXED 10000.0f // 10kΩ 上拉电阻
#define R25 10000.0f // 25°C 阻值
#define T0 298.15f // 25°C = 298.15 K
#define BETA 3434.0f // Murata NCP18XH103F03RB (25–85°C)
float NTC_GetTemperature(uint16_t adc_raw)
{
// 1. 电压
float v_adc = (adc_raw / ADC_MAX) * VREF;
if (v_adc <= 0.0f || v_adc >= VREF) return -273.15f; // 错误保护
// 2. 计算 NTC 电阻
float r_ntc = R_FIXED * v_adc / (VREF - v_adc);
// 3. Beta 公式求温度
float tempK = 1.0f / ( (1.0f / T0) + (1.0f / BETA) * logf(r_ntc / R25) );
return tempK - 273.15f; // 转为摄氏度
}
要点:
- 一定要知道 NTC 的 Beta 值(比如 B=3950K),否则换算会不准。
- 如果精度要求高,可以查厂家提供的 NTC 阻值-温度对照表,做查表+插值。
输出:
- 使用的换算值为adc[2]

更多推荐



所有评论(0)