Здравствуйте, уважаемые читатели! Сегодня поговорим об одном из самых простых датчиков температуры - термисторе.
Термистор - это переменный резистор, чье сопротивление меняется в зависимости от окружающей температуры. В каком-то виде, термистор очень схож с фоторезистором, чье сопротивление меняется в зависимости от степени освещенности. Более того, далее будет видно, что и схема подключения термистора к Ардуино и другими микроконтроллерам, аналогична схеме подключения фоторезистора. Нюансы есть в программной обработке получаемого значения, о чем мы поговорим далее.
Термистор не может похвастаться большой точностью измерения температуры. Но его неоспоримым плюсом является низкая стоимость и малый размер. Он подойдет там, где точность ±2 ºC для нас не критична. Например, для срабатывания активной системы охлаждения при проектировании готовых приборов (об этом будет далее, когда мы перейдем к созданию корпусов для различных устройств), систем проветривания для выращивания растений и т.д.
Определение типа термистора и его номинального сопротивления
Существует два типа термисторов:
1. С положительным температурным коэффициентом (PTC), когда сопротивление возрастает с повышением температуры.
2. С отрицательным температурным коэффициентом (NTC), когда сопротивление уменьшается при повышении температуры.
Определить тип термистора очень просто. Достаточно взять мультиметр, выбрать на нем режим измерения сопротивления и соединить зажимы мультиметра с ножками термистора.
Далее зажимаем пальцами сам термистор, и если сопротивление падает, то наш термистор с отрицательным температурным коэффициентом, а если растет, то с положительным температурным коэффициентом.
Таким же образом мы можем определить номинальное значение сопротивление термистора. Это будет значение сопротивления при температуре 25 ºC.
В нашем случае, один из наиболее распространенных типов термисторов, с отрицательным температурным коэффициентом (NTC), номиналом 10 кОм.
Зависимость сопротивления термистора от температуры
Зависимость сопротивления термистора от температуры обычно указывается в характеристиках конкретной модели термистора. Но всегда она представляет из себя логарифмическую кривую, где, если откладывать температуру по оси X, а сопротивление по оси Y, то при температуре 25 ºC, мы по оси Y имеем номинальное значение сопротивление термистора, т.е. в нашем случае 10кОм. А далее, при повышении температуры, сопротивление либо убывает, как в нашем случае NTC-термистора, либо возрастает, в случае PTC-термистора.
Если представить график для разных типов термисторов в виде таблицы, то получатся следующие значения:
Если Вашего термистора нет в таблице, и нет характеристик производителя, можно использовать данные ближайшего по характеристикам из таблицы термистора, а далее, в коде скетча, использовать поправочные коэффициенты, подобранные опытным путем.
Подключение термистора к Ардуино
Подключение термистора к Ардуино мы разберем на примере подключения к Arduino UNO. Схема подключения термистора к Ардуино точно такая же, как и схема подключения фоторезистора к Ардуино, которую мы разбирали в статье "Что такое фоторезистор? Подключение фоторезистора к ATtiny13". Нам снова понадобятся три провода, сам термистор и сопротивление на 10 кОм, которое подключено к той же ножке термистора, что и провод, идущий к аналоговому пину A0 Ардуино.
В Интернете много разных примеров скетчей для работы с термисторами. Они отличаются разной степенью точности. Я приведу код скетча в среде разработки Arduino IDE, которым пользуюсь сам. На мой взгляд он наиболее точный. Важное условие - скетч подходит только для NTC-термисторов, номиналом 10 кОм, при условии использования в схеме сопротивления на 10 кОм. Но, т.к. это самый распространенный тип термисторов для Ардуино-проектов и он чаще всего присутствует в различных наборах для Ардуино и в различных проектах, я советую при покупке, выбирать именно его.
const byte termPin = A0;
void setup() {
Serial.begin(9600);
pinMode(termPin, INPUT);
}
void loop() {
int termVal=analogRead(termPin); //аналоговое значение
double tempK=log(10000.0*((1024.0/termVal-1))); //температура в Кельвинах для термистора 10 кОм...
tempK=1/(0.001129148+(0.000234125+(0.0000000876741*tempK*tempK))*tempK); //... и подключенного резистора 10 кОм
float tempC=tempK-273.15; //температура в градусах Цельсия
Serial.print("Температура: ");
Serial.print(tempC);
Serial.println(" ºC");
delay(1000);
}
Если открыть Монитор порта в Arduino IDE, то мы увидим следующую картину:
Повышение температуры вызвано тем, что я зажал термистор пальцами.
В этой статье мы разобрали теоретические аспекты работы с термистором. А в дальнейшем будем использовать термистор в готовых проектах, где он будет взаимодействовать уже с другими микроконтроллерами.
_________________________________________________________
Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!
Другие публикации по теме:
- Что такое фоторезистор? Подключение фоторезистора к ATtiny13 и управление светодиодом.