СОДЕРЖАНИЕ ►
Подключение термистора к Ардуино позволяет довольно точно измерять температуру окружающей среды. Рассмотрим подключение полупроводникового элемента к микроконтроллеру, разберем программу для калибровки датчика на основе ntc термистора 100 кОм и соберем схему на плате Arduino Uno с автоматическим включением светодиодов в зависимости от температуры воздуха в помещении.
Устройство и принцип работы термистора

Терморезистор (термистор) — это полупроводник, электрическое сопротивление которого изменяется в зависимости от температуры, изготавливаются из материалов с высоким температурным коэффициентом сопротивления. По типу зависимости сопротивления от температуры различают терморезисторы с отрицательным (NTC) и положительным (PTC) температурным коэффициентом сопротивления.
У термисторов NTC типа с ростом температуры происходит падение их сопротивления, а у PTC термисторов с ростом температуры сопротивление растет. Номинальное сопротивление термисторов (заявленное производителем) соответствует сопротивлению полупроводника при температуре 25 C°. Как и температурный сенсор LM35, термистор можно откалибровать, используя формулу Стейнхарта — Харта.
Подключение к Ардуино терморезистора NTC
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- термистор 100 кОм 3950 ntc;
- светодиоды и резисторы;
- макетная плата;
- провода «папа-папа».

При измерении температуры с помощью Ардуино следует знать номинальное сопротивление термистора (мы использовали 100 кОм), сопротивление резистора (в нашем примере 200 кОм) и коэффициент NTC терморезистора, который равен 3950. После сборки схемы, укажите в программе необходимые параметры и загрузите код в плату. На мониторе порта должна отображаться температура воздуха.
#define B 3950 // B коэффициент #define RESISTOR 200000 // сопротивление резистора, 200 кОм #define THERMISTOR 100000 // номинальное сопротивление термистора, 100 кОм #define NOMINAL 25 // номинальная температура #define sensor A1 void setup() { Serial.begin(9600); pinMode(sensor, INPUT); } void loop() { int t = analogRead(sensor); 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(100); }
Пояснения к коду:
- в программе следует указать сопротивление резистора и термистора;
- на мониторе порта Arduino IDE будет выводится сопротивление терморезистора 3950 ntc (термистора) и температура воздуха в помещении.

#define B 3950 // B коэффициент #define RESISTOR 200000 // сопротивление резистора, 200 кОм #define THERMISTOR 100000 // номинальное сопротивление термистора, 100 кОм #define NOMINAL 25 // номинальная температура #define sensor A1 void setup() { Serial.begin(9600); pinMode(sensor, INPUT); pinMode(10, OUTPUT); pinMode(12, OUTPUT); } void loop() { int t = analogRead(sensor); 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(10, HIGH); digitalWrite(12, LOW); } if (steinhart >= 24) { digitalWrite(10, LOW); digitalWrite(12, HIGH); } delay(100); }
Пояснения к коду:
- в зависимости от температуры будет включаться тот или иной светодиод.
Заключение. Использование терморезистора (термистора) – один из самых простых и дешевых способов измерения температуры с помощью микроконтроллера Ардуино. При изменении температуры окружающей среды изменяется сопротивление терморезистора, поэтому его применение оправдано там, где нет экстремальных температур и нет критичной важности в точности производимых измерений.










Добавить комментарий