Как подключить терморезистор к компьютеру

Обновлено: 02.07.2024

Термистор - это переменный резистор, чье сопротивление меняется в зависимости от окружающей температуры. В каком-то виде, термистор очень схож с фоторезистором, чье сопротивление меняется в зависимости от степени освещенности. Более того, далее будет видно, что и схема подключения термистора к Ардуино и другими микроконтроллерам, аналогична схеме подключения фоторезистора. Нюансы есть в программной обработке получаемого значения, о чем мы поговорим далее.

Термистор не может похвастаться большой точностью измерения температуры. Но его неоспоримым плюсом является низкая стоимость и малый размер . Он подойдет там, где точность ±2 ºC для нас не критична. Например, для срабатывания активной системы охлаждения при проектировании готовых приборов (об этом будет далее, когда мы перейдем к созданию корпусов для различных устройств), систем проветривания для выращивания растений и т.д.

Определение типа термистора и его номинального сопротивления

Существует два типа термисторов:

1. С положительным температурным коэффициентом (PTC) , когда сопротивление возрастает с повышением температуры.

2. С отрицательным температурным коэффициентом (NTC) , когда сопротивление уменьшается при повышении температуры.

Определить тип термистора очень просто. Достаточно взять мультиметр , выбрать на нем режим измерения сопротивления и соединить зажимы мультиметра с ножками термистора.

Значение сопротивление термистора при комнатной температуре около 24 градусов Значение сопротивление термистора при комнатной температуре около 24 градусов

Далее зажимаем пальцами сам термистор, и если сопротивление падает, то наш термистор с отрицательным температурным коэффициентом, а если растет, то с положительным температурным коэффициентом.

Таким же образом мы можем определить номинальное значение сопротивление термистора . Это будет значение сопротивления при температуре 25 ºC.

В нашем случае, один из наиболее распространенных типов термисторов, с отрицательным температурным коэффициентом (NTC), номиналом 10 кОм .

Зависимость сопротивления термистора от температуры

Зависимость сопротивления термистора от температуры обычно указывается в характеристиках конкретной модели термистора. Но всегда она представляет из себя логарифмическую кривую, где, если откладывать температуру по оси X, а сопротивление по оси Y, то при температуре 25 ºC, мы по оси Y имеем номинальное значение сопротивление термистора, т.е. в нашем случае 10кОм. А далее, при повышении температуры, сопротивление либо убывает, как в нашем случае NTC-термистора, либо возрастает, в случае PTC-термистора.


Терморезистор (термистор, термосопротивление) — полупроводниковый прибор, электрическое сопротивление которого изменяется в зависимости от его температуры .

Терморезистор был изобретён Самюэлем Рубеном (Samuel Ruben) в 1930 году .

Терморезисторы изготавливаются из материалов с высоким температурным коэффициентом сопротивления (ТКС), который обычно на порядки выше, чем ТКС металлов и металлических сплавов.

По типу зависимости сопротивления от температуры различают терморезисторы с отрицательным (NTC-термисторы, от слов «Negative Temperature Coefficient») и положительным (PTC-термисторы, от слов «Positive Temperature Coefficient» или позисторы) температурным коэффициентом сопротивления (или ТКС). Для позисторов — с ростом температуры растёт их сопротивление; для NTC-термисторов увеличение температуры приводит к падению их сопротивления.

Условно терморезисторы классифицируют как низкотемпературные (предназначенные для работы при температуpax ниже 170 Кельвин), среднетемпературные (от 170 до 510 К) и высокотемпературные (выше 570 К). Выпускаются терморезисторы, предназначенные для работы при температурах от 900 до 1300 К.

Термисторы бывают разных видов вот например:


Конкретно мне интересен термистор по нескольким параметрам. Во первых их используют для измерения температуры в Экструдере 3Д принтеров и они давольно хорошо измеряют температуру необходимую для плавления пластика. Во вторых размер, если посмотреть на 3тий тип термистора на картинке выше, который в эпоксидной смоле, он очень маленький и его можно зацепить за любую поверхность и мерить на ней температуру. Вот по этим параметрам я и собираюсь его использовать так как хочу сделать станок для изготовления прутка для печати на 3Д принтере.

Для реализации нам понадобится:

Схема подключения всех элементов будет выглядеть следующим образом:


Чтобы вычислить значение температуры используют формулу Стейнхарта — Харта:

Уравнение Стейнхарта — Харта

Уравнение имеет параметры A,B и C, которые нужно брать из спецификации к датчику. Так как нам не требуется большой точности, можно воспользоваться модифицированным уравнением (B-уравнение):

В этом уравнении неизвестным остается только параметр B, который для NTC термистора равен 3950. Остальные параметры нам уже известны:

  • T0 — комнатная температура в Кельвинах, для которой указывается номинал термистора; T0 = 25 + 273.15;
  • T — искомая температура, в Кельвинах;
  • R — измеренное сопротивление термистора в Омах;
  • R0 — номинальное сопротивление термистора в Омах.

Скетч будет выглядеть следующем образом:

Вот что мы увидим в мониторе порта:


Видим из показаний, что сопротивление побольше чем 100кОм и температура 23 градуса, вполне логично, формула отрабатывает правильно.
Теперь с помощью данной формулы мы уже можем строить разные условия для разных действий.

В этом уроке мы будет использовать термистор NTC 100K в стеклянном корпусе. Вот такой:

Термистор NTC 100K

Подключение термистора к Ардуино

Принципиальная схема

Схема подключения термистора NTC 100K к Ардуино

Внешний вид макета

Схема подключения термистора NTC 100K к Ардуино

Какое сопротивление должен иметь резистор в верхнем плече делителя? Как правило, используют резистор с сопротивлением, совпадающим по порядку с номиналом термистора. В нашем уроке мы используем резистор на R1 = 102 кОм, его легко получить последовательным соединением двух резисторов на 51 кОм.

Программа для вычисления сопротивления термистора

Первая программа, которую мы напишем, будет вычислять сопротивление термистора в Омах.

Результат работы программы:

Сопротивление термистора, Ардуино

Программа для вычисления температуры на термисторе

Уравнение Стейнхарта — Харта

Уравнение имеет параметры A,B и C, которые нужно брать из спецификации к датчику. Так как нам не требуется большой точности, можно воспользоваться модифицированным уравнением (B-уравнение):

В этом уравнении неизвестным остается только параметр B, который для NTC термистора равен 3950. Остальные параметры нам уже известны:

Модифицируем программу для Ардуино, добавив расчет температуры:

Уже лучше! Программа показывает нам температуру в градусах Цельсия. Как и ожидалось, она немного ниже 25 C°.

Использование терморезистора (термистора) – один из самых простых и дешевых способов измерения температуры. Для точного измерения температуры с помощью терморезистора необходим микроконтроллер, в качестве которого в нашем проекте мы будем использовать плату Arduino. Измеренное значение температуры будет отображаться на экране ЖК дисплея. Подобная схема может найти применение в удаленных метеорологических станциях, проектах автоматизации (умного) дома, управления электронным и промышленным оборудованием.

Внешний вид проекта для измерения температуры с помощью терморезистора и Arduino

Необходимые компоненты

  1. Плата Arduino (любая модель) (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. NTC thermistor 10 кОм (терморезистор с отрицательным температурным коэффициентом) (купить на AliExpress).
  4. Резистор 10 кОм (купить на AliExpress).
  5. Соединительные провода.

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема проекта для измерения температуры с помощью терморезистора и Arduino

При изменении температуры изменяется сопротивление терморезистора (термистора). Но в нашей схеме мы не будем измерять сопротивление термистора напрямую, вместо этого мы использовали делитель напряжения, одним из резисторов которого является известное сопротивление 10 кОм, а вторым – наш терморезистор. Средняя точка делителя напряжения подключена к аналоговому входу A0 платы Arduino, поэтому при помощи аналогово-цифрового преобразования (АЦП) на этом контакте мы можем определить падение напряжение на терморезисторе в любой момент времени и, следовательно, и его сопротивление. Благодаря этим данным мы по формулам, приведенным ниже в данной статье, можем определить значение температуры.

Терморезистор

Ключевым компонентом нашей схемы является терморезистор, который используется для определения температуры. Термистор представляет собой резистор, сопротивление которого изменяется в зависимости от температуры. Существует два типа подобных термисторов: NTC (Negative Temperature Co-efficient - с отрицательным температурным коэффициентом) и PTC (Positive Temperature Co-efficient - с положительным температурным коэффициентом). Мы в нашем проекте будем использовать терморезистор NTC типа – его сопротивление уменьшается с повышением температуры. На следующих рисунках приведены график зависимости сопротивления подобного терморезистора от температуры и его типовой внешний вид.

График зависимости сопротивления терморезистора NTC типа от температуры
Внешний вид терморезистора

Расчет температуры с помощью терморезистора

Схема используемого нами делителя напряжения представлена на следующем рисунке.

Схема используемого нами делителя напряжения

Напряжение на терморезисторе в этой схеме можно определить из известного напряжения:

Из этой формулы можно выразить значение сопротивления терморезистора Rt (R – известное сопротивление 10 кОм):

Значение Vout мы затем будем определять в коде программы с помощью считывания значения на выходе АЦП на контакте A0 платы Arduino.

Математически, сопротивление терморезистора можно вычислить с помощью известного уравнения Стейнхарта-Харта (Stein-Hart equation).

T = 1/(A + B*ln(Rt) + C*ln(Rt) 3 ) .

В этой формуле A, B и C - константы, Rt – сопротивление терморезистора, ln - натуральный логарифм.

Мы для проекта использовали терморезистор со следующими константами: A = 1.009249522×10 −3 , B = 2.378405444×10 −4 , C = 2.019202697×10 −7 . Эти константы можно определить с помощью данного калькулятора, введя в нем значения сопротивления терморезистора при трех значениях температуры или вы их можете непосредственно узнать из даташита на ваш терморезистор.

Таким образом, для определения значения температуры нам будет нужно только значение сопротивления терморезистора – после его определения мы просто подставляем его значение в уравнение Стейнхарта-Харта и с его помощью рассчитываем значением температуры в кельвинах. Алгоритм определения температуры в нашем проекте представлен на следующем рисунке.

Алгоритм определения температуры в нашем проекте

Исходный код программы

Полный код программы представлен в конце статьи, здесь же сначала рассмотрим его наиболее важные фрагменты.

Читайте также: