Подключение термистора к arduino.
Терморезистор (термистор, термосопротивление) — полупроводниковый прибор, электрическое сопротивление которого изменяется в зависимости от его температуры .
Терморезистор был изобретён Самюэлем Рубеном (Samuel Ruben) в 1930 году .
Терморезисторы изготавливаются из материалов с высоким температурным коэффициентом сопротивления (ТКС), который обычно на порядки выше, чем ТКС металлов и металлических сплавов.
По типу зависимости сопротивления от температуры различают терморезисторы с отрицательным (NTC-термисторы, от слов «Negative Temperature Coefficient») и положительным (PTC-термисторы, от слов «Positive Temperature Coefficient» или позисторы) температурным коэффициентом сопротивления (или ТКС). Для позисторов — с ростом температуры растёт их сопротивление; для NTC-термисторов увеличение температуры приводит к падению их сопротивления.
Условно терморезисторы классифицируют как низкотемпературные (предназначенные для работы при температуpax ниже 170 Кельвин), среднетемпературные (от 170 до 510 К) и высокотемпературные (выше 570 К). Выпускаются терморезисторы, предназначенные для работы при температурах от 900 до 1300 К.
Термисторы бывают разных видов вот например:
Конкретно мне интересен термистор по нескольким параметрам. Во первых их используют для измерения температуры в Экструдере 3Д принтеров и они давольно хорошо измеряют температуру необходимую для плавления пластика. Во вторых размер, если посмотреть на 3тий тип термистора на картинке выше, который в эпоксидной смоле, он очень маленький и его можно зацепить за любую поверхность и мерить на ней температуру. Вот по этим параметрам я и собираюсь его использовать так как хочу сделать станок для изготовления прутка для печати на 3Д принтере.
В данном примере будем использовать простейший NTC термистор c номинальным сопротивлением 100 кОм при температуре 25 градусов “С” который используется в 3Д принтерах. Данный термистор имеет маркирову 3950.
Для реализации нам понадобится:
Схема подключения всех элементов будет выглядеть следующим образом:
Чтобы вычислить значение температуры используют формулу Стейнхарта — Харта:
Уравнение имеет параметры A,B и C, которые нужно брать из спецификации к датчику. Так как нам не требуется большой точности, можно воспользоваться модифицированным уравнением (B-уравнение):
В этом уравнении неизвестным остается только параметр B, который для NTC термистора равен 3950. Остальные параметры нам уже известны:
- T0 — комнатная температура в Кельвинах, для которой указывается номинал термистора; T0 = 25 + 273.15;
- T — искомая температура, в Кельвинах;
- R — измеренное сопротивление термистора в Омах;
- R0 — номинальное сопротивление термистора в Омах.
Скетч будет выглядеть следующем образом:
Вот что мы увидим в мониторе порта:
Видим из показаний, что сопротивление побольше чем 100кОм и температура 23 градуса, вполне логично, формула отрабатывает правильно.
Теперь с помощью данной формулы мы уже можем строить разные условия для разных действий.
Ардуино: терморезистор NTC 100K
Терморезистор (или термистор) — это такой резистор, который меняет свое электрическое сопротивление в зависимости от температуры.
Существует два вида термисторов: PTC — с положительным температурным коэффициентом, и NTC — с отрицательным. Положительный коэффициент означает, что с повышением температуры сопротивление термистора растёт. NTC-термистор ведет себя противоположным способом.
Также термисторы отличаются номинальным сопротивлением, которое соответствует комнатной температуре — 25 C°. Например, популярными являются термисторы с номиналом 100 кОм и 10 кОм. Такие термисторы часто используют в 3D-принтерах.
В этом уроке мы будет использовать термистор NTC 100K в стеклянном корпусе. Вот такой:
Подключение термистора к Ардуино
Чтобы измерить сопротивление термистора, подключим его в качестве нижнего плеча делителя напряжения. Среднюю же точку делителя подключим к аналоговому входу Ардуино — A0. Подобный способ использовался в уроке про фоторезистор.
Подробно об аналоговых входах Ардуино мы говорили на уроке: Аналого-цифровые преобразования — АЦП
Принципиальная схема
Внешний вид макета
Какое сопротивление должен иметь резистор в верхнем плече делителя? Как правило, используют резистор с сопротивлением, совпадающим по порядку с номиналом термистора. В нашем уроке мы используем резистор на R1 = 102 кОм, его легко получить последовательным соединением двух резисторов на 51 кОм.
Программа для вычисления сопротивления термистора
Первая программа, которую мы напишем, будет вычислять сопротивление термистора в Омах.
Результат работы программы:
Можно заметить, что измеренное сопротивление термистора меньше 100 кОм, значит температура окружающей среды ниже 25 C°. Следующий шаг — вычисление температуры в градусах Цельсия.
Программа для вычисления температуры на термисторе
Чтобы вычислить значение температуры используют формулу Стейнхарта — Харта:
Уравнение имеет параметры A,B и C, которые нужно брать из спецификации к датчику. Так как нам не требуется большой точности, можно воспользоваться модифицированным уравнением (B-уравнение):
В этом уравнении неизвестным остается только параметр B, который для NTC термистора равен 3950. Остальные параметры нам уже известны:
- T0 — комнатная температура в Кельвинах, для которой указывается номинал термистора; T0 = 25 + 273.15;
- T — искомая температура, в Кельвинах;
- R — измеренное сопротивление термистора в Омах;
- R0 — номинальное сопротивление термистора в Омах.
Модифицируем программу для Ардуино, добавив расчет температуры:
Уже лучше! Программа показывает нам температуру в градусах Цельсия. Как и ожидалось, она немного ниже 25 C°.
Digitrode
цифровая электроника вычислительная техника встраиваемые системы
Arduino и термистор: принцип работы, схема подключения, код
Сегодня датчики температуры имеют широкое применение в различных встраиваемых системах от «умных» домов до промышленных компьютеризированных комплексов. Но словосочетание «датчик температуры» представляет собой общее понятие, под которым скрываются различные устройства, отличающиеся друг от друга характеристиками, формой исполнения и ценой.
Одним из простых типов датчиков температуры является термистор. Он довольно дешевый по сравнению с другими типами датчиков и прост в использовании, поэтому в основном его выбирают радиолюбители для создания своих проектов. Поэтому в данном материале рассмотрим, что такое термистор, и как его подключить к Arduino.
Итак, Термистор представляет собой особый тип резистора, сопротивление которого зависит от температуры. Есть два противоположных по своему принципу действия типа термисторов: PTC (с положительным температурным коэффициентом), где сопротивление возрастает с повышением температуры, и NTC (с отрицательным температурным коэффициентом), где сопротивление уменьшается при повышении температуры. В данном примере будем работать с NTC-термистором. Для расчета сопротивления термистора можно воспользоваться простой формулой, которая называется уравнением с параметром B (справедливо только для NTC-термистора).
Здесь е является основание натурального логарифма, R0 является сопротивлением терморезистора, измеренное при температуре T0, а B представляет собой постоянный коэффициент, который зависит от характеристик материала, эта константа выражается в Кельвинах, и ее значение указано производителями в технической документации на конкретную модель термистора.
Для расчета температуры нам нужно знать сопротивление RT, а для этого нужно воспользоваться законом Ома. Рассмотрим типовую схему с участием термистора.
Здесь сопротивление термистора найдем как RT = VRT / (VR/R). Вот теперь у нас есть все данные для расчета температуры.
Вот так будет выглядеть схема подключения термистора к Arduino. В ней мы подключим узел соединения резистора и терморезистора к аналоговому входу A0 платы Arduino, чтобы измерять напряжение в этой точке.
Далее приведем скетч, в котором будет определяться температура в цельсиях, кельвинах и фаренгейтах на основе полученного значения с аналогового входа A0 и параметров подключенного термистора.
Вот так будет выглядеть вывод данных на экран через последовательный порт.
Arduino и термистор
Описание
Термистор (терморезистор) – электронный компонент, меняющий своё сопротивление в зависимости от температуры. Термисторы существуют в разных корпусах, имеют разные сопротивления, B (beta) коэффициент, а также бывают NTC и PTC типа (отрицательный и положительный температурный коэффициент сопротивления). В наборе GyverKIT идёт термистор в герметичном исполнении, как на картинке справа:
- Тип: NTC
- Сопротивление при 25 °С: 10 кОм
- B коэффициент: 3950
- Измеряемый диапазон: -20.. 105 °С
- Точность: 1%
- Реальная точность: я сравнивал несколько термисторов с ds18b20, на участке 15.. 80 °С термисторы стабильно показывали на 0.5 °С больше. Между собой термисторы показывали одинаковое значение. Таким образом штука довольно точная и поддаётся простой калибровке.
- Разрешение (при 10 бит АЦП):
0.1 °С в диапазоне -10.. 60 °С и
0.5 °С в остальных случаях
Подключение
Arduino сама по себе не умеет измерять сопротивление, поэтому термистор подключается фактически так же, как потенциометр: по схеме делителя напряжения центральной точкой на аналоговый пин с дополнительным резистором к VCC. Для этого в наборе идут резисторы на 10 кОм:
Библиотеки
В примерах на этом сайте мы будем использовать библиотеку GyverNTC. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию GyverNTC. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
Примеры
Читаем и выводим температуру в порт:
Температура будет немного “шуметь”, несмотря на чтение с усреднением. Для более точных измерений можно использовать простейший фильтр – экспоненциальное скользящее среднее, которое реализуется так: filt_val += (new_val — filt_val) * k , где k – число от 0.0 до 1.0. Фильтр даёт плавное изменение, что позволяет получать максимально точное значение с течением времени. Результат работы данной программы лучше наблюдать во встроенном плоттере графиков:
Термисторы подключаются на разные аналоговые пины, каждый пин подтягивается резистором к VCC. GND у всех общая:
В программе создаём ещё один экземпляр класса и точно так же с ним работаем:
Видео
Практическое использование термистора с Arduino
Здравствуй, Хабрасообщество. После прочтения нескольких статей на хабе Arduino я загорелся заполучить эту игрушку. И вот недавно получил посылку с платой. Затем побаловался со светодиодами и захотел чего-нибудь посерьёзнее. Решил сделать простейший термометр, используя всего термистор, резистор на 10 кОм и LCD дисплей. Кому интересно что получилось — прошу под кат.
Начало
Термистор — это переменный резистор, меняющий своё сопротивление в зависимости от температуры окружающей среды.
Нам потребуются следующие детали:
Arduino Uno — 1 шт
Термистор — 1 шт
Резистор c сопротивлением 10 кОм — 1 шт
LCD дисплей HJ1602A — 1 шт
Соединительные перемычки — несколько штук
Всё это у меня было, поэтому я сразу начал проектирование на breadboard.
Ножки к экрану я еще припаял в день покупки.
Затем присоединяем экран к выходам Arduino. У моего экрана распиновка такая.
1 (GND) GND — Земля
2 (VDD) 5v — Питание(+)
3 (VO/Contrast) — Управление контрастностью (сюда я подключил переменный резистор)
4 (RS) — 12 — Канал данных
5 (RW) — 11 — Канал данных
6 (E) — 10 — Канал данных
11 (DB4) — 5 — Канал данных
12 (DB5) — 4 — Канал данных
13 (DB6) — 3 — Канал данных
14 (DB7) — 2 — Канал данных
15 (BL1/Backlight1) — 13 — Питание подсветки(+)
16 (BL2/Backlight2) — GND — Земля(-)
Получилась вот такая картина.
Далее подключим одну ногу термистора к аналоговому входу A4 и резистор на 10 кОм в землю, а вторую ногу термистора к 5V.
В общем то и всё. Аппаратная часть готова. Вот схема.
Программирование
С программированием тут всё понятно. Исходный код скетча:
Результат работы программы.