Перейти к содержанию

Калькулятор NTC-термистора

Задайте термистор через R25 и коэффициент B или тремя точками из даташита — калькулятор пересчитает температуру в сопротивление и обратно, а для делителя с АЦП покажет напряжение, код и разрешение по температуре.

Исходные данные

Модель термистора
Ом

10k — 10 кОм

К

из даташита: B25/50 или B25/85

Что известно
°C
Ом
В
Термистор в делителе
АЦП

Результат

Сопротивление при 25 °C
10 кОм
Чувствительность
−4,44 %/К444 Ом на градус
B между 25 и 85 °C
3950 К
Напряжение на входе АЦП
1,65 Впадает при нагреве
Код АЦП
2048 из 4096
Шаг АЦП
0,022 °Cразрешение по температуре в этой точке

Модель с одним B точна вблизи 25 °C. Для широкого диапазона задайте три точки из таблицы даташита: формула Стейнхарта — Харта точнее на порядок.

NTC-термистор — резистор с отрицательным температурным коэффициентом: при нагреве его сопротивление падает, у типичных деталей — на 4–5 % на градус около комнатной температуры. Это самый дешёвый способ измерять температуру микроконтроллером: термистор, один резистор и вход АЦП.

B-параметр

Самая простая модель описывает кривую одним коэффициентом B:

R(T)=R25⋅eB(1T−1T25),T=11T25+1Bln⁡RR25,R(T) = R_{25} \cdot e^{B \left( \frac{1}{T} - \frac{1}{T_{25}} \right)}, \qquad T = \frac{1}{\frac{1}{T_{25}} + \frac{1}{B} \ln \frac{R}{R_{25}}},

где T — температура в кельвинах, T25 = 298,15 К, R25 — сопротивление при 25 °C. B вычисляют по двум точкам кривой и указывают вместе с ними: B25/50 или B25/85.

Модель точна только около этих двух температур. Для термистора Vishay NTCLE100E3 с B25/85 = 3977 К ошибка B-модели по сравнению с кривой производителя — около 0,8 °C при 0 °C и около 3 °C при −40 °C.

Формула Стейнхарта — Харта

Три коэффициента описывают кривую намного точнее:

1T=a+bln⁡R+c (ln⁡R)3.\frac{1}{T} = a + b \ln R + c \, (\ln R)^3 .

Коэффициенты находят по трём точкам из таблицы R(T) даташита — калькулятор делает это в режиме «Три точки». Для того же NTCLE100E3 коэффициенты, найденные по точкам 0, 25 и 50 °C, дают отклонение от кривой производителя не больше 0,04 °C от −40 до 85 °C и 0,2 °C при 125 °C. Сам Vishay публикует для своих материалов расширенную формулу с четырьмя коэффициентами — по ней построена правая колонка таблицы ниже.

Таблица R(T) для 10 кОм

Температура10 кОм, B = 3950 КNTCLE100E3 10 кОм (B25/85 = 3977 К)
−40 °C401,9 кОм332,1 кОм
−35 °C281,6 кОм239,9 кОм
−30 °C200,2 кОм175,2 кОм
−25 °C144,3 кОм129,3 кОм
−20 °C105,4 кОм96,36 кОм
−15 °C77,9 кОм72,5 кОм
−10 °C58,25 кОм55,05 кОм
−5 °C44,03 кОм42,16 кОм
0 °C33,62 кОм32,55 кОм
5 °C25,92 кОм25,34 кОм
10 °C20,17 кОм19,87 кОм
15 °C15,84 кОм15,7 кОм
20 °C12,54 кОм12,49 кОм
25 °C10 кОм10 кОм
30 °C8,037 кОм8,059 кОм
35 °C6,506 кОм6,535 кОм
40 °C5,301 кОм5,33 кОм
45 °C4,348 кОм4,372 кОм
50 °C3,588 кОм3,605 кОм
55 °C2,978 кОм2,989 кОм
60 °C2,486 кОм2,49 кОм
65 °C2,086 кОм2,084 кОм
70 °C1,76 кОм1,753 кОм
75 °C1,492 кОм1,481 кОм
80 °C1,27 кОм1,256 кОм
85 °C1,087 кОм1,07 кОм
90 °C933,6 Ом915,4 Ом
95 °C805,4 Ом786 Ом
100 °C697,5 Ом677,3 Ом
105 °C606,4 Ом585,8 Ом
110 °C529,1 Ом508,3 Ом
115 °C463,3 Ом442,6 Ом
120 °C407,1 Ом386,6 Ом
125 °C358,8 Ом338,7 Ом

Колонки различаются: дешёвые термисторы «10k 3950» описаны одним B, а для NTCLE100E3 приведена кривая производителя. Для своей детали берите таблицу из её даташита.

Делитель для АЦП

Делитель с термистором: резистор Rs от опорного напряжения, термистор RK к общему проводу, вход АЦП в средней точкеUопRs10 кОмАЦПt°RKNTC 10 кОм
Термистор RK в нижнем плече делителя: при нагреве его сопротивление и напряжение на входе АЦП падают

Если термистор стоит в нижнем плече, а резистор Rs подключён к тому же опорному напряжению, что и у АЦП, код не зависит от величины опорного напряжения:

N=2n⋅RR+Rs,R=Rs⋅N2n−N.N = 2^n \cdot \frac{R}{R + R_s}, \qquad R = R_s \cdot \frac{N}{2^n - N}.

Чувствительность делителя максимальна, когда Rs равен сопротивлению термистора в середине диапазона. Пример: термистор 10 кОм с B = 3950 К, Rs = 10 кОм и 12-битный АЦП при 25 °C дают шаг около 0,022 °C на единицу кода. Это разрешение, а не точность: точность ограничивают допуски термистора и резистора.

Самонагрев

Ток делителя нагревает термистор. Перегрев равен рассеиваемой мощности, делённой на коэффициент рассеяния из даташита. В делителе 10 + 10 кОм от 3,3 В на термисторе 1,65 В и 0,27 мВт; при коэффициенте рассеяния 7 мВт/К у NTCLE100E3 перегрев около 0,04 °C. Если перегрев заметен, увеличивают Rs или подают питание на делитель только на время измерения.

Пример на C

#include <math.h>
#include <stdint.h>

#define R_SERIES 10000.0f   /* Rs, ohm */
#define ADC_FULL 4096.0f    /* 12-bit ADC */

/* Steinhart-Hart for a 10 kOhm NTC (Vishay NTCLE100E3), fitted at 0, 25 and 50 C */
static const float SH_A = 1.134512e-3f;
static const float SH_B = 2.330242e-4f;
static const float SH_C = 9.377464e-8f;

/* Thermistor in the lower arm, Rs to the ADC reference */
float ntc_celsius(uint16_t code)
{
    if (code == 0 || code >= ADC_FULL) return NAN;      /* open or shorted sensor */
    float r = R_SERIES * code / (ADC_FULL - code);
    float l = logf(r);
    return 1.0f / (SH_A + SH_B * l + SH_C * l * l * l) - 273.15f;
}

Коэффициенты для своего термистора даёт калькулятор в режиме «Три точки»: кнопка «Копировать» выдаёт их в виде констант на C. Пересчитать сам делитель удобно в калькуляторе делителя напряжения.

Частые вопросы

Что значит NTC 10k 3950?

Термистор с отрицательным температурным коэффициентом, сопротивлением 10 кОм при 25 °C и коэффициентом B = 3950 К. По B-модели он имеет около 33,6 кОм при 0 °C и около 700 Ом при 100 °C. B обычно указан для пары температур 25 и 50 °C, и на краях диапазона реальная кривая отходит от модели — для точности берите таблицу R(T) из даташита.

Чем B25/50 отличается от B25/85?

Это коэффициент B, вычисленный по сопротивлениям при 25 и 50 °C или при 25 и 85 °C. Кривая термистора не идеальна, поэтому для одной и той же детали числа различаются на десятки кельвинов. В расчёт подставляйте тот B, пара температур которого ближе к вашему диапазону.

Какой резистор ставить последовательно с термистором?

Равный сопротивлению термистора в середине рабочего диапазона: при этом напряжение делителя меняется с температурой быстрее всего. Для комнатных температур и термистора 10 кОм — 10 кОм. Если важен ток, резистор берут больше, жертвуя чувствительностью.

Почему термистор показывает температуру с ошибкой?

Частые причины: неверный B или модель с одним B на широком диапазоне, допуск R25 (1–5 %), самонагрев током делителя, неточный резистор делителя и разные опорные напряжения делителя и АЦП. Самонагрев оценивают по коэффициенту рассеяния из даташита: у NTCLE100E3 это 7 мВт/К.

Как перевести код АЦП в температуру?

Если термистор стоит снизу, а резистор Rs — от того же опорного напряжения, что и у АЦП, сопротивление термистора R = Rs · N / (2ⁿ − N), где N — код, n — разрядность. Затем температура по формуле Стейнхарта — Харта: опорное напряжение в расчёт не входит.

Источники

  1. Vishay. NTCLE100E3 — NTC Thermistors, Radial Leaded, datasheet (document 29049) — B25/85 = 3977 К, расширенная формула Стейнхарта — Харта и её коэффициенты, 32,55 кОм при 0 °C для 10 кОм, коэффициент рассеяния 7 мВт/К
  2. J. S. Steinhart, S. R. Hart. Calibration curves for thermistors. Deep-Sea Research, 1968, vol. 15, № 4, p. 497–503 — исходная работа с уравнением 1/T = a + b·ln R + c·(ln R)³

Обновлено . Нашли ошибку в расчёте? Напишите нам.