Подключение термистора к Arduino позволяет измерять температуру окружающей среды с большой точностью. Рассмотрим подключение этого полупроводникового элемента к микроконтроллеру Ардуино, разберем программу для калибровки датчика на основе термистора ntc 100 кОм и соберем схему с платой Arduino Uno / Nano с автоматическим переключением светодиодов в зависимости от температуры окружающей среды.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- termistor ntc 3950 10k
- светодиоды и резисторы
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
Термистор — это полупроводник, электрическое сопротивление которого изменяется в зависимости от температуры. Этот недорогой электронный компонент изготавливается из материалов с высоким температурным коэффициентом сопротивления. Различают термисторы с отрицательным температурным коэффициентом (NTC termistor 10k) и термисторы с положительным температурным коэффициентом (PTC termistor 10k).
PTC / NTC Arduino термистор характеристики

Характеристики NTC 3950 100k (datasheet)
- Напряжение питания: до 36 В
- Значения сопротивления при 25°С: 100K ± 1%
- Диапазон рабочих температур: -50°C до +260°C
NTC датчик температуры Arduino имеет сопротивление, которое уменьшается при повышении температуры, а PTC термисторы имеют сопротивление, которое увеличивается при повышении температуры. Номинальное сопротивление (указанное производителем) соответствует сопротивлению термистора при 25°C. Как и датчик температуры LM35 для Ардуино, терморезистор может быть откалиброван по формуле Стейнхарта-Харта.
Как подключить к Ардуино термистор ntc 3950

Для измерения температуры с помощью платы Ардуино необходимо знать номинальное сопротивление термистора (мы использовали 100 кОм), сопротивление резистора в примере (200 кОм) и коэффициент NTC термистора, который равен 3950. После сборки схемы, размещенной на картинке выше, укажите необходимые параметры в программе и загрузите код. Температура воздуха должна отображаться на мониторе порта Arduino IDE.
Скетч для калибровки термистора ntc 3950 100k
#define B 3950 // ntc коэффициент
#define RESISTOR 200000 // сопротивление резистора в омах
#define THERMISTOR 100000 // сопротивление термистора в омах
#define NOMINAL 25 // номинальная температура
#define NTC A1 // пин подключения терморезистора
void setup() {
Serial.begin(9600);
pinMode(NTC, INPUT);
}
void loop() {
int t = analogRead(NTC);
float tr = 1023.0 / t - 1;
tr = RESISTOR / tr;
Serial.print("R = ");
Serial.print(tr);
Serial.print(", t = ");
float steinhart;
steinhart = tr / THERMISTOR;
steinhart = log(steinhart);
steinhart /= B;
steinhart += 1.0 / (NOMINAL + 273.15);
steinhart = 1.0 / steinhart;
steinhart -= 273.15;
Serial.println(steinhart);
delay(1000);
}
Arduino NTC 3950 терморезистор и светодиод

В следующем примере разберем возможность управления светодиодом, в зависимости от температуры измеренное с помощью ntc или ptc термистора. Этот код будет интересен тем, кто решил сделать управление большими нагрузками от микроконтроллера Ардуино, так как к плате Arduino можно подключить реле вместо светодиодов. И вы уже сможете управлять осветительными или обогревательными приборами от 220 Вольт.
Скетч управления светодиодом от термистора
#define B 3950 // ntc коэффициент
#define RESISTOR 200000 // сопротивление резистора в омах
#define THERMISTOR 100000 // сопротивление термистора в омах
#define NOMINAL 25 // номинальная температура
#define NTC A1 // пин подключения терморезистора
#define BLU 10
#define RED 12
void setup() {
Serial.begin(9600);
pinMode(NTC, INPUT);
pinMode(BLU, OUTPUT);
pinMode(RED, OUTPUT);
}
void loop() {
int t = analogRead(NTC);
float tr = 1023.0 / t - 1;
tr = RESISTOR / tr;
Serial.print("R = ");
Serial.print(tr);
Serial.print(", t = ");
float steinhart;
steinhart = tr / THERMISTOR;
steinhart = log(steinhart);
steinhart /= B;
steinhart += 1.0 / (NOMINAL + 273.15);
steinhart = 1.0 / steinhart;
steinhart -= 273.15;
Serial.println(steinhart);
if (steinhart < 24) {digitalWrite(BLU, HIGH); digitalWrite(RED, LOW);}
if (steinhart >= 24) {digitalWrite(BLU, LOW); digitalWrite(RED, HIGH);}
delay(1000);
}
Заключение. Использование термистора NTC или PTC Arduino — один из самых простых способов измерения температуры воздуха с помощью микроконтроллера Ардуино. Сопротивление ntc и ptc терморезистора изменяется в зависимости от температуры окружающей среды. Поэтому использование датчиков на основе этого полупроводника оправдано, когда нет экстремальных температур и точность измерения не критична.
