Как подключить терморезистор к Arduino. Какие типы терморезисторов существуют. Как правильно выбрать и откалибровать терморезистор. Как написать код для Arduino для считывания показаний температуры.
Что такое терморезистор и как он работает
Терморезистор — это электронный компонент, сопротивление которого изменяется в зависимости от температуры. Существует два основных типа терморезисторов:
- NTC (с отрицательным температурным коэффициентом) — сопротивление уменьшается при повышении температуры
- PTC (с положительным температурным коэффициентом) — сопротивление увеличивается при повышении температуры
Принцип работы терморезистора основан на изменении электропроводности полупроводникового материала при изменении температуры. Это позволяет измерять температуру путем измерения сопротивления терморезистора.
Преимущества использования терморезистора с Arduino
Терморезисторы обладают рядом преимуществ при использовании с Arduino для измерения температуры:
- Низкая стоимость
- Простота подключения и использования
- Высокая чувствительность к изменениям температуры
- Широкий диапазон измеряемых температур
- Компактные размеры
Это делает терморезисторы отличным выбором для различных проектов на Arduino, связанных с измерением и контролем температуры.
Выбор подходящего терморезистора для Arduino
При выборе терморезистора для Arduino следует учитывать несколько факторов:
- Тип терморезистора (NTC или PTC)
- Номинальное сопротивление при 25°C (обычно 10 кОм или 100 кОм)
- Коэффициент B (характеризует чувствительность)
- Диапазон рабочих температур
- Точность и стабильность
Для большинства проектов на Arduino хорошим выбором будет NTC терморезистор с номинальным сопротивлением 10 кОм или 100 кОм. Например, популярная модель NTC 3950 100k часто используется с Arduino.
Схема подключения терморезистора к Arduino
Для подключения терморезистора к Arduino потребуется следующая схема:
- Терморезистор
- Резистор 10 кОм (подтягивающий резистор)
- Соединительные провода
- Макетная плата
Схема подключения:
- Подключите один вывод терморезистора к пину 5V Arduino
- Второй вывод терморезистора соедините с аналоговым входом A0
- Между выводом терморезистора и GND подключите резистор 10 кОм
Такая схема представляет собой делитель напряжения, позволяющий измерять сопротивление терморезистора.
Калибровка терморезистора
Для точного измерения температуры с помощью терморезистора необходима его калибровка. Существует несколько методов калибровки:
- Метод двух точек — измерение сопротивления при двух известных температурах
- Метод трех точек — более точный метод с использованием трех температурных точек
- Использование уравнения Стейнхарта-Харта для аппроксимации зависимости
Наиболее точным является метод с использованием уравнения Стейнхарта-Харта:
1/T = A + B*ln(R) + C*(ln(R))^3
где T — температура в Кельвинах, R — сопротивление, A, B и C — коэффициенты.
Программирование Arduino для работы с терморезистором
Вот пример базового кода для Arduino, который позволяет считывать показания с терморезистора и выводить температуру:
const int thermistorPin = A0;
const int seriesResistor = 10000;
const float beta = 3950;
const float nominalTemp = 25;
const float nominalResistance = 100000;
void setup() {
Serial.begin(9600);
}
void loop() {
int raw = analogRead(thermistorPin);
float resistance = seriesResistor * (1023.0 / raw - 1.0);
float steinhart = log(resistance / nominalResistance) / beta;
steinhart += 1.0 / (nominalTemp + 273.15);
float temperature = 1.0 / steinhart - 273.15;
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
delay(1000);
}
Этот код использует уравнение Стейнхарта-Харта для вычисления температуры на основе измеренного сопротивления терморезистора.
Улучшение точности измерений
Для повышения точности измерений температуры с помощью терморезистора можно предпринять следующие шаги:
- Использовать более точный АЦП (например, внешний 16-битный АЦП)
- Применять усреднение нескольких измерений
- Учитывать самонагрев терморезистора
- Использовать более сложные методы калибровки
- Экранировать терморезистор от внешних помех
Эти методы позволят увеличить точность измерений до десятых и даже сотых долей градуса.
Практические применения терморезистора с Arduino
Терморезистор в сочетании с Arduino может использоваться во многих интересных проектах:
- Домашняя метеостанция
- Термостат для аквариума
- Система охлаждения компьютера
- Контроль температуры в инкубаторе
- Мониторинг температуры почвы в теплице
Возможности применения ограничены только вашим воображением!
Сравнение терморезистора с другими датчиками температуры
Рассмотрим преимущества и недостатки терморезистора по сравнению с другими популярными датчиками температуры для Arduino:
Терморезистор vs DS18B20:
- Преимущества терморезистора: дешевле, проще в подключении
- Недостатки: требует калибровки, менее точен
Терморезистор vs DHT22:
- Преимущества терморезистора: быстрее реагирует на изменения, может измерять более широкий диапазон температур
- Недостатки: не измеряет влажность, требует дополнительных вычислений
Выбор датчика зависит от конкретных требований проекта.
Уроки по робототехнике — Урок №5. Как использовать сенсоры с Arduino
Для занятия необходима установленная на компьютерах среда программирования miniBloq и драйвера для Arduino.
Макетные провода папа-папа |
Мин. 10 шт |
Контроллер Arduino UNO |
1 шт |
|
Светодиод |
1 шт |
Беспаечная макетная плата |
1 шт |
|
Резистор 10 кОм |
1 шт |
Резистор 220 Ом |
1 шт |
|
Потенциометр | 1 шт | Фоторезистор или терморезистор | 1 шт |
Добрый день, ребята.
Ранее мы в вами познакомились с цифровыми пинами Arduino и знаем, что они могут принимать на вход только Да (True) или Нет (False).
Но часто вознкает необходимость обрабатывать сигналы, которые имеют больше чем два (включено и выключено) значения.
Для этого на Arduino Uno имеется 6 аналоговых входов, с помощью которых можно считывать входящее напряжение.
Эти входы объединены на плате в группу «Analog In» и пронумерованы от A0 до A5. Давайте их найдем.
Для того, чтобы продолжить разбираться с аналоговыми входами и протестировать их работу мы должны придумать, как мы можем менять напряжение на входе этих пинов. В этом нам помогает делитель напряжения.
Делитель напряжения — это простая схема, которая позволяет получить из высокого напряжения пониженное. (Рис.1)
Используя только два резистора и входное напряжение, мы можем создать выходное напряжение, составляющее определенную часть от входного. Делитель напряжения является одной из наиболее фундаментальных схем в электронике.
Рис.1 Делитель напряжения
Как рассчитать делитель напряжения?
Расчет делителя напряжения предполагает, что нам известно, по крайней мере, три величины из приведенной выше схемы: входное напряжение и сопротивление обоих резисторов. Зная эти величины, мы можем рассчитать выходное напряжение.
Рис.2 Формула расчета выходного напряжения
Это же потенциометр!
Потенциометр, с которым, я думаю, вы знакомы это и есть делитель напряжения.
Изнутри потенциометр представляет собой резистор и скользящий контакт, который делит резистор на две части и передвигается между этими двумя частями.
С внешней стороны, как правило, у потенциометра имеется три вывода: два контакта подсоединены к выводам резистора, в то время как третий (центральный) подключен к скользящему контакту. (Рис.3)
Рис.3 Схема потенциометра
Если контакты резистора подключить к источнику напряжения (один к минусу, другой к плюсу), то центральный вывод потенциометра будет выдавать напряжение, зависящее от положения ручки потенциометра.
Эксперимент с потенциометром и мультиметром
Проведите эксперимент, снимая показания мультиметром: Переведите движок потенциометра в верхнее положение и напряжение на выходе будет равно входному напряжению. Теперь переведите движок в крайнее нижнее положение и на выходе будет нулевое напряжение. Если же установить ручку потенциометра в среднее положение, то мы получим половину входного напряжения.
Подключение потенциометра к Arduino
Теперь давайте подключим потенциометр к одному из аналоговых входов, например, А2 и попробуем считать показания с помощью Arduino. (Рис. 4)
Рис.4 Подключение потенциометра к Arduino Uno
Важно
Показания входного напряжения от 0 до 5 В на аналоговом входе преобразуются в программе miniBloq в значения от 0 до 100.
Увидеть значения, которые передает нам аналоговый вход, мы можем с помощью блока терминал. (Рис.5)
Рис.5 Блок терминал
Блок терминал отображает на экране компьютера передданные в него значения.
Давайте напишем следующую программу (Рис.6).
Эта программа раз в секунду отправляет данные с аналогового входа А2 (sensor2) в терминал.
Рис.6 Вывод показаний аналогового входа в терминал
Для того, чтобы увидеть значения, необходимо открыть окно терминала (Рис.
Рис.7 Окно терминала
Теперь попробуйте повертеть ручку потенциометра. Значения должны меняться.
Светильник с регулируемой яркостью
Теперь предлагаю вам направить ваши знания в полезное русло.
Сделаем светильник с регулируемой яркостью. Для этого модифицируем наше устройство, добавив светодиод.
Так как яркость светодиода должна регулироваться, мы можем подключать его не ко всем пинам.
А к каким?
Конечно, только к тем, которые поддерживают ШИМ. (3, 5, 6, 9, 10, 11). Я выберу пин №5 и не забуду про резистор на 220 ом (Рис.8)
Рис.8 Светильник с регулируемой яркостью
Добавим в нашу программу с потенциометром блок, который будет направлять значения потенциометра в пин №5 на светодиод. (Рис.9)
Рис.9 Программа устройства «Светильник с регулируемой яркостью»
Подключаем сенсор
Другое применение делителя напряжения — это снятие показаний с датчиков.
Существует множество компонентов, которые меняют своё сопротивление в зависимости от внешних условий.
Так, термисторы меняют сопротивление от нуля до определённого значения в зависимости от температуры, фоторезисторы меняют сопротивление в зависимости от интенсивности попадающего на них света и т.д.
Если в схеме делителя напряжения заменить R1 или R2 на один из таких компонентов, напряжение на выходе (Vout) будет меняться в зависимости от внешних условий, влияющих на датчик.
Подключив это выходное напряжение к аналоговому входу Ардуино, можно получать информацию о температуре, уровне освещённости и других параметрах среды.
Допустим, сопротивление фоторезистора изменяется от 1 кОм (при освещении) и до 10 кОм (при полной темноте). Если мы дополним схему постоянным сопротивлением примерно 10 кОм, то мы можем получить широкий диапазон изменения выходного напряжения при изменении освещенности фоторезистора.
Давайте соберем следующую схему. (Рис.10)
Рис.10 Замена потенциометра на резистивный делитель напряжения с фоторезистором.
Теперь ваша программа, которая выводит значения нашего датчика в терминал.
Законспектируйте показания датчика при:
-
плохом освещении,
-
ярком освещении.
Измените программу, добавив условный оператор так, чтобы она включала светодиод, если в комнате темно и выключала его, если в комнате светло. (Рис.11)
Рис. 11. Вариант программы устройства «Умный светильник»
Дополнительно
Заменив фоторезистор на термистор, мы получим пожарную сигнализацию.
Самостоятельно проанализируйте показания датчика в терминале и отредактируйте порог, при котором будет загораться светодиод.
Задание для самостоятельного исполнения
Подумайте, как можно модифицировать устройство, чтобы порог срабатывания сигнализации или включения светодиода можно было регулировать.
Купити Модуль Датчика Температури в Україні
за порядкомза зростанням ціниза зниженням ціниза новизною
- 5dDsjIkCHYKO6OREJqjED2ce51D9IfTiH7TRDM8A8x0″ data-advtracking-product-id=»1530387490″ data-tg-chain=»{"view_type": "preview"}»>
86169
Модуль GY-68 BMP180 датчик температури і тиску BOSCH
33,90 грн
В наявності 70 од. Оптом і в роздріб
eyJwcm9kdWN0SWQiOjE1MzAzOTE4OTMsImNhdGVnb3J5SWQiOjUwMDYwMiwiY29tcGFueUlkIjozNjM0OTQ2LCJzb3VyY2UiOiJwcm9tOmNvbXBhbnlfc2l0ZSIsImlhdCI6MTY4MzkzOTIwNC4wNzE0NSwicGFnZUlkIjoiNzcwZTgyMjEtNjYwNC00YzQ3LWJlY2QtMDE0NjUzYzE4ODVhIiwicG93IjoidjIifQ.laDkshY88iCRLI7oPDpeLv8Q7cGJMpjmPJ20rHz0mu8″ data-advtracking-product-id=»1530391893″ data-tg-chain=»{"view_type": "preview"}»>86093
Модуль терморезистора (датчик температури) KY-013 для Arduino
18,30 грн
В наявності 35 од. Оптом і в роздріб
86050
Топ продажFC-37 модуль — датчик вологості / дощу для ARDUINO
44,10 грн
Очікується Оптом і в роздріб
+380 (68) 412-48-94
- +380 (95) 571-13-53
eyJwcm9kdWN0SWQiOjE1MzAzOTE4NTgsImNhdGVnb3J5SWQiOjUwMDYwMiwiY29tcGFueUlkIjozNjM0OTQ2LCJzb3VyY2UiOiJwcm9tOmNvbXBhbnlfc2l0ZSIsImlhdCI6MTY4MzkzOTIwNC4wNzQ0MzUyLCJwYWdlSWQiOiJhODUzMTkzOS0wNTYyLTQ3ZTktYThlYi03MjlmMzA0ZDI0OTAiLCJwb3ciOiJ2MiJ9.RtyUPx_COvMgAychSaEK8ACo33hDizsSHFr4gHmLo7M» data-advtracking-product-id=»1530391858″ data-tg-chain=»{"view_type": "preview"}»>- +380 (95) 571-13-53
- +380 (95) 571-13-53
- +380 (95) 571-13-53
- +380 (95) 571-13-53
86027
FC-28 модуль гігрометра для визначення вологості ґрунту ARDUINO
34,30 грн
В наявності 20 од. Оптом і в роздріб
00887
Топ продажМодуль датчика вологості і температури DHT11
80,30 грн
В наявності 11 од. Оптом і в роздріб
00933
Модуль MAX6675 для вимірювання температури до 1024 градусів
165 грн
Очікується Оптом і в роздріб
+380 (68) 412-48-94
00921
Модуль SHT20 для вимірювання температури і вологості
123,60 грн
Очікується Оптом і в роздріб
+380 (68) 412-48-94
00934
Модуль датчика вологості і температури DHT22
177,80 грн
Очікується Оптом і в роздріб
+380 (68) 412-48-94
86092
Топ продажМодуль вимірювання температури KY-028 для Arduino
28,90 грн
Очікується Оптом і в роздріб
+380 (68) 412-48-94
16243248
Інтернет-магазин Electronica пропонує вибрати модуль датчика температури та вологості для електроніки за доступною ціною. Наші модулі забезпечують точність вимірювання та надійність у роботі. У каталозі зібрані модулі, в основному, для Arduino, які можуть бути корисними для створення різних проектів, що вимагають коригування вологості. Таких, як автоматичні системи керування вологістю, системи автоматичного поливу рослин, метеостанції та інші.
Інтернет-радіоринок «Електроніка» пропонує модуль вимірювання температури високої якості та працює лише з надійними постачальниками, щоб клієнти в Україні могли купити радіоелементи та інструментарій із гарантією. Будь-який товар відповідає заявленим характеристикам за всіма важливими параметрами. На сайті представлено понад 10 000 найменувань радіотехнічного обладнання. Вибирайте все необхідне в одному місці за найнижчою ціною!
Про асортимент
Електронний модуль датчика температури — це компактний пристрій, призначений для вимірювання температури та передачі в керуючу систему. Дані модулі використовуються в електронних пристроях контролю температурного режиму, таких як кондиціонери, термостати, холодильники, печі тощо.
Модуль датчика температури може бути виконаний на основі терморезистора або термопари. Так, модуль терморезистора вимірює зміну опору при зміні температури. А термопари – зміна термоелектричної ЕРС. Модулі датчика вологості можуть бути виконані на основі ємнісних, резистивних чи пропускних датчиків.
Застосування модулів датчика температури та вологості в електроніці:
- Контролює кліматичні умови всередині приміщень (у житлових будинках, офісах, складах, теплицях тощо).
- Контролює мікроклімат у зонах зберігання продуктів (холодильники, морозильні камери, винні шафи тощо).
- Використання в системах автоматичного керування (кондиціонери, вентиляція, системи поливу тощо).
- Використання у наукових дослідженнях (в експериментах з вивчення властивостей речовин, у метеорології тощо).
Наш каталог модулів датчиків вологості та температури включає в основному моделі платформи Arduino.
Модуль вимірювання термопараметрів можна підключити до аналогового входу плати та зчитувати дані за допомогою аналого-цифрового перетворювача.
Модуль датчика вологості також може бути підключений до аналогового входу плати або цифрового порту, використовуючи бібліотеку для читання даних.
Також у нас є модуль датчика вологості дощу для Arduino, який може бути використаний для визначення наявності дощу або вологи. Цей пристрій працює на основі вимірювання опору вологості, що дозволяє визначити, чи поверхня знаходиться в стані сухості або вологості.
Підключення
Підключення залежить від конкретної моделі та використовуваної платформи.
У більшості випадків датчик температури та вологості (модуль) підключається до мікроконтролера або плати Arduino за допомогою проводів або штирьових роз’ємів. При підключенні необхідно звернути увагу на правильну полярність підключення та вибір правильного порту вводу-виводу.
Важливо переконатися, що ви правильно підключили модуль датчика вологості та температури, інакше датчик може працювати коректно. Крім того, перед початком роботи з датчиком рекомендується ознайомитися з документацією та прикладами коду, щоб переконатися, що ви правильно налаштували його у вашому проекті.
Как использовать датчик температуры в ардуино
Ozeki 10
Текущий документ содержит некоторую полезную информацию о датчиках температуры. С датчиком температуры Arduino вы можете измерять температуру окружающей среды. с достаточно высокой точностью. Документ содержит основы того, как температура датчик работает, то вы сможете узнать, как можно использовать датчик температуры с помощью Arduino и управляйте им со своего компьютера с помощью Ozeki 10.
Что такое датчик температуры?
Датчики температуры (термисторы) представляют собой переменные резисторы, которые изменяют свои сопротивление с температурой. Они классифицируются по тому, как их сопротивление реагирует на изменения температуры.
Как работает датчик температуры?
В термисторах с отрицательным температурным коэффициентом (NTC) сопротивление уменьшается с повышение температуры. В термисторах с положительным температурным коэффициентом (PTC) сопротивление увеличивается с повышением температуры. Термисторы NTC являются наиболее распространенными, и это тип, который мы будем использовать в этом уроке. Термисторы NTC изготовлены из полупроводниковый материал (например, оксид металла или керамика), который был нагрет и спрессованы с образованием чувствительного к температуре проводящего материала.
Проводящий материал содержит носители заряда, которые позволяют току течь через него. Высокие температуры заставляют полупроводниковый материал высвобождать больше носителей заряда. В термисторах NTC, изготовленных из оксида железа, носителями заряда являются электроны. В термисторах из оксида никеля NTC носителями заряда являются электронные дырки.
Схема подключения датчика температуры Arduino
Рисунок 1 – Схема подключения датчика температуры Arduino
Как использовать датчик температуры Arduino в Ozeki
Измеряет или устанавливает температуру. Данные могут передаваться между устройством контроллера температуры и любое выбранное соединение Ozeki. Эти данные могут быть командой регулятору температуры или событием от него. Например, вы можете установить желаемую температуру с помощью команды и после этого ваш Ozeki 10 может получать события текущей температуры и состояния нагревателя. Чтобы использовать датчик температуры в Ozeki, сначала необходимо загрузить Ozeki Robot Developer. озэки Robot Developer установит библиотеки Arduino, необходимые для эффективного использования этого датчика.
После установки разработчика Ozeki Robot вам необходимо загрузить код управления датчиком температуры к вашему Ардуино. Вы можете найти код и инструкции по загрузке на следующих страницах. Процесс загрузки включает в себя два шага: сначала вам нужно отформатировать EEPROM Arduino, затем вам нужно загрузить контрольный код. Процедура очень проста, требуется только несколько секунд.
Загрузите код датчика температуры в Arduino Uno
Загрузите код датчика температуры в Arduino Mega 2560
Загрузите код датчика температуры в Arduino Nano
Датчики Arduino и Ozeki будут обмениваться данными через порт USB с использованием протокола датчика температуры Ozeki. Этот Протокол позволяет вам использовать датчик непосредственно на вашем ПК. Вы сможете управлять этим датчиком через веб-интерфейс. пользовательский интерфейс или вы сможете общаться с ним с помощью Ozeki Chat. Вы можете прочитать больше об управлении чатом на следующей странице.
Как общаться с датчиком температуры с помощью чата
Важно понимать управление чатом, потому что когда вы строите робота, Вы хотите управлять этим датчиком, отправляя и получая сообщения. Если вы откройте приложение Ozeki Robot Developer, вы увидите, кому вы можете написать C#.Net программа для работы с этим датчиком.
Этапы подключения
- Подключите датчик температуры к Arduino, следуя схеме подключения
- Подключите плату Arduino к компьютеру
- Проверьте COM-порт в списке устройств Windows
- Откройте приложение Arduino на вашем компьютере
- Загрузить пример кода в Arduino
- Откройте https://localhost:9515 в браузере
- Выберите подключение датчика температуры
- Проверка датчика путем измерения температуры объекта
Обзор системы
Предлагаемая нами система состоит из датчика температуры, подключенного к аналоговому порту. вашего Ардуино. Arduino будет отвечать за чтение данных с этого устройства. в настоящее время. Мозг системы будет работать на ПК (рис. 2). На ПК Озеки 10 смогут управлять общением. Вы можете легко запустить Ozeki 10 с помощью веб-браузера.
Рис. 2. Конфигурация системы подключения датчика температуры к ПК с помощью Arduino
Предварительные условия
- Термистор NTC
- Конденсатор 10 мкФ и резистор 4,7 кОм
- Ozeki 10 установлен на вашем компьютере
- Программируемая плата (Arduino Mega/Nano/Uno)
- USB-кабель между платой и компьютером
Шаг 1. Подсоедините датчик температуры к плате Arduino
Вы можете увидеть, как подключить термистор NTC на любую из следующих досок:
- Ардуино Мега 2560
- Ардуино Нано
Ваш браузер не поддерживает видео тег.
- Ардуино Уно
После подключения подключите плату к компьютеру!
Шаг 2.
Загрузить код в микроконтроллер(Вот код для загрузки)
Ваш браузер не поддерживает видео тег.
Шаг 3 — Запустите Ozeki 10, чтобы проверить датчик температуры
Ваш браузер не поддерживает видео тег.
Шаг 4 — Настройка датчика температуры в Ozeki 10
Чтобы иметь возможность настроить датчик температуры (подключенный к Arduino) в Ozeki 10, который установлен на вашем компьютере, вам необходимо открыть графический интерфейс пользователя (GUI) Ozeki 10. Вы можете открыть графический интерфейс, введя URL-адрес компьютера в свой веб-браузер. Например, если наш компьютер имеет IP-адрес 192.168.1.5, мы бы введите http://192.168.1.5:9513 в наш веб-браузер.
Шаг 5. Изучите протокол датчика температуры
Контроллер температуры может связываться с Ozeki через следующий протокол.
Каталожные номера:
https://www.create.arduino.cc
https://www.circuitbasics.com
Дополнительная информация
- Датчики и приводы Arduino
- Как использовать аналоговый датчик в Arduino
- Как использовать контроллер кнопок в Arduino
- Как использовать зуммер в Arduino
- Как использовать двигатели постоянного тока в Arduino
- Как использовать датчик dht в Arduino
- Как использовать диспетчер EEPROM в Arduino
- Как использовать датчик гироскопа в Arduino
- Как использовать менеджер идентификаторов в Arduino
- Как использовать ИК-трансивер в Arduino
- Как использовать аналоговый джойстик в Arduino
- Как использовать клавиатуру в ардуино
- Как использовать ЖК-дисплей в Arduino
- Как использовать считыватель NFC в Arduino
- Как использовать оптический вентиль в Arduino
- Как использовать регистр в ардуино
- Как использовать приемопередатчик RF 433 МГц
- Как использовать приемопередатчик RF 2,4 ГГц
- Как использовать светодиод RGB в Arduino
- Как использовать датчик RGB в Arduino
- Как использовать поворотный энкодер в Arduino
- Как использовать серводвигатель в Arduino
- Как использовать шаговый двигатель в Arduino
- Как использовать переключатель в ардуино
- Как использовать таймер в ардуино
- Как использовать ультразвуковой датчик в Arduino
Контроллер переключения | Arduino Mega |
Термистор Arduino.
Теория, калибровка и эксперимент — Портал производителяИндекс сообщений блога
Введение в статью
Список деталей для экспериментального раздела
Аппроксимация Стейнхарта–Харта для термисторов
Измерение сопротивления с помощью делителя напряжения
Выбор резистора для оптимального диапазона термистора
Термисторный эксперимент с Arduino
Сравнение между DHT22 и термистором
Заключение
PCBGOGO — Производитель Спонсор этого проекта
Термистор, название которого происходит от комбинации therm al и res istor , представляет собой датчик температуры, который регистрирует изменения внутреннего сопротивления в зависимости от температуры. Термисторы часто выбирают вместо термопар, потому что они более точны, имеют более короткое время отклика и, как правило, дешевле. Для большинства приложений термисторы являются разумным и простым выбором для измерения температуры ниже 300 градусов Цельсия [узнайте больше о разнице между термистором и термопарой здесь ]. В нашем случае мы будем использовать термистор с отрицательным температурным коэффициентом (NTC), сопротивление которого уменьшается с повышением температуры. Термисторы NTC чаще всего используются в коммерческих продуктах, работающих при температурах в десятки градусов, таких как термостаты, тостеры и даже 3D-принтеры. НТЦ 39Будет использован термистор 50 100к, который рассчитан на сопротивление 100кОм при 25 градусах Цельсия. В этом учебном пособии будут представлены методы связи сопротивления с температурой путем подгонки данных заводской калибровки. Производительность термистора также будет оцениваться с использованием платы Arduino и простого эксперимента по закону охлаждения Ньютона.
Увеличенная фотография термистора NTC 3950 100k. Дизайн стеклянных шариков можно увидеть на конце оголенного двойного провода.
Список деталей для экспериментальной секции
Я буду использовать термистор NTC 3950 100k, как упоминалось выше, и он будет основным компонентом, используемым в этом руководстве. Кроме того, потребуется плата Arduino вместе с датчиком температуры DHT22, если пользователь планирует полностью следовать этому эксперименту. Я добавил список запчастей ниже с партнерской ссылкой от amazon:
Термистор NTC 3950 100k — 8,99 долл. США (5 шт.) [Amazon]
Arduino Uno — 11,86 долл. США [Amazon]
Датчик температуры DHT22 — 4 долл. США. 99 [Amazon]
Резисторы 220k и 10k — $10,86 ( 525 шт.) [Amazon]
Макетная плата — 7,86 долл. США (6 шт.) [Amazon]
Конденсатор 10 мкФ — 17,99 долл. США (500 шт.) [Amazon]
90 041
Провода-перемычки — $5,99 (120 шт.) [Amazon]
Аппроксимация Стейнхарта-Харта для термисторов
Термисторы можно аппроксимировать, приняв функцию третьего порядка, называемую аппроксимацией Стейнхарта-Харта [источник по калибровке термисторов]:
где Т — температура, рассчитанная по изменению сопротивления термистора, Р . Коэффициенты С 0 , С 1 и С 2 необходимо найти методом нелинейной регрессии. Уравнение Стейнхарта-Харта часто упрощают и переписывают как экспоненту первого порядка:
Теперь мы видим примерный способ соотнесения Т к сопротивлению, Р . Коэффициенты а, б, в можно найти с помощью метода наименьших квадратов по данным заводской калибровки, которые можно получить у производителя. Для моего термистора я нашел заводские таблицы, которые позволили мне подобрать данные, используя приведенное выше уравнение [пример таблицы данных с таблицей].
Используя Python, я смог загрузить одну из таблиц для моего термистора и подогнать данные к экспоненциальной кривой, используя приведенную выше функцию и набор инструментов scipy «curve_fit». Полученное соотношение и коэффициенты показаны ниже:
Рис. 1: Заводская калибровка соотношения температуры и сопротивления для показаний термистора.
Теперь, когда у нас есть зависимость между сопротивлением провода термистора и измеренной температурой, нам нужно понять, как мы можем преобразовать сопротивление в осмысленную величину, которую мы можем измерить с помощью аналого-цифрового преобразователя, а именно, нам нужно преобразовать сопротивление в напряжение. И это объясняется в следующем разделе.
Измерение сопротивления с помощью делителя напряжения
Arduino имеет 10-разрядный аналого-цифровой преобразователь (АЦП), который измеряет значения напряжения. Поскольку наш термистор выдает сопротивление, нам нужно построить зависимость между нашим сопротивлением и напряжением, чтобы связать изменение сопротивления с напряжением. Мы можем сделать это с помощью простого делителя напряжения:
.Рис. 2: Схема делителя напряжения для измерения напряжения вместо сопротивления термистора.
Для Arduino мы будем использовать 3,3 В в качестве нашего V 0 для снижения помех при измерениях термистора. Используя законы Кирхгофа, чтобы вывести соотношение между нашим входным напряжением и двумя сопротивлениями, используя следующее соотношение:
, которые мы можем переписать через сопротивление и общий ток контура:
Наконец, мы можем переписать наш ток как функцию двух сопротивлений контура:
Объединив последние два уравнения, мы можем получить представление для напряжения на втором резисторе (наш термистор):
, которое мы можем решить для В 2 , это напряжение, которое будет считывать Arduino:
а если чуть чуть:
И, наконец, классическое уравнение делителя напряжения:
Уравнение делителя напряжения чрезвычайно важно для определения сопротивления термистора, R 2 , к напряжению, считываемому Arduino. Но прежде чем мы прочитаем R 2 , мы должны сначала решить, какие R 1 мы хотим выбрать для схемы делителя напряжения. А так как мы уже знаем В 0 = 3,3В, то последним неизвестным является резистор делителя.
Выбор резистора для оптимального диапазона термистора
Возможно, это не очевидно, но правильный выбор R 1 имеет решающее значение. Для этого требуется знание взаимосвязи между сопротивлением термистора и измеряемой температурой. Мы можем начать с переписывания уравнения делителя напряжения:
и если мы решим для R 1 :
Мы, конечно, можем переписать R 2 с точки зрения подходящих параметров и температуры:
И если мы предполагаем диапазон температур, мы можем взять середину диапазона температур и поставить V 2 в середине, гарантируя, что наше значение R 1 точно поместит середину температурного диапазона в середину диапазона напряжений Arduino. После того, как резистор будет рассчитан из желаемого диапазона температур, мы можем использовать следующее уравнение для прогнозирования напряжения Arduino в зависимости от температуры:
Теперь мы можем использовать параметры подгонки из уравнения термистора, полученного на заводе, и построить график, демонстрирующий реакцию напряжения на изменения температуры и сопротивление делителя напряжения, Р 1 . Используя В 0 = 3,3 В, график будет выглядеть следующим образом:
Рис. 3: Кривые отклика сопротивления делителя напряжения . Реакция напряжения термистора изменяется в зависимости от выбранного резистора делителя напряжения. Обязательно выберите резистор рядом с резистором выше для вашего конкретного желаемого диапазона температур.
Полная реализация алгоритмов и рисунков 1 и 3 реализована ниже в Python 3.6.
Эксперимент с термистором с Arduino
Теперь, когда у нас есть связь между напряжением, считываемым Arduino, и температурой, измеренной термистором, и мы выбрали резистор делителя напряжения, теперь мы можем проверить, работает ли система и работает ли она. наш алгоритм правильный! Правильный прогноз температуры по известным параметрам выше выглядит следующим образом:
Мы используем a, b, c из нашей подгонки выше для таблицы данных термистора. Мы также выбрали R 1 на основе желаемого диапазона температур, а V 0 устанавливается с помощью Arduino. Наконец, мы можем ввести V 2 в уравнение как переменную, которая считывается с одного из аналоговых выводов. Но прежде чем мы реализуем приведенное выше уравнение, давайте сначала подключим Arduino и термистор в сценарии с делителем напряжения:
.Рисунок 4: Arduino + Термисторная схема делителя напряжения. Также обратите внимание на внешнее опорное напряжение 3,3 В — мы выбираем 3,3 В, потому что схема делителя напряжения, скорее всего, никогда не достигнет более высоких напряжений из-за интересующего нас рабочего диапазона. Выбор 3,3 В также приводит к снижению шума для АЦП. Я также подключил конденсатор 10 мкФ к контактам 3,3 В и GND, чтобы также снизить шум.
Можно сделать несколько замечаний относительно приведенной выше схемы подключения. Во-первых, между контактами 3,3 В и GND помещается конденсатор емкостью 10 мкФ. Кроме того, важно отметить, что мы будем использовать внешнее опорное напряжение с помощью контакта 3,3 В. И причина двоякая: ожидаемое напряжение от термистора будет в диапазоне 1,5 В, а во-вторых, вывод 3,3 В имеет меньше шума, поэтому наши показания напряжения будут более стабильными, что приведет к более стабильным показаниям температуры (подробнее о опорное напряжение здесь). Код Arduino для измерения температуры с использованием наших выводов выше и проводки на рисунке 4 приведен ниже:
Приведенный выше код усредняет 10 показаний температуры для более стабильного вывода и дает показания примерно каждые 500 мс как в градусах Цельсия, так и в градусах Фаренгейта. Параметры должны быть обновлены для пользовательского термистора, а среднее значение также может быть скорректировано в зависимости от желаемой пользователем стабильности.
Конденсатор дает сглаженную температурную характеристику
Рис. 5: Эффект сглаживания конденсатора на АЦП для показаний термистора.
В следующем разделе я сравниваю наш термистор с датчиком температуры и влажности DHT22.
Сравнение между DHT22 и термистором
В качестве простого теста я решил подключить датчик температуры и влажности DHT22, чтобы увидеть, насколько точно уравнение термистора аппроксимирует температуру на основе его сопротивления. DHT22 — это классический датчик Arduino, поэтому я ожидал, что они будут довольно близки при сравнении при комнатной температуре. Я также хотел увидеть их реакцию на повышение температуры окружающей среды и посмотреть реакцию во времени, чтобы получить представление о том, как датчики работают в условиях активно меняющихся температурных сценариев.
Схема подключения термистора и датчика DHT22 показана ниже.
Рис. 6: Подключение для сравнения между датчиком DHT22 и термистором.
Код Arduino для сравнения DHT22 и термистора также приведен ниже. Он использует библиотеку «SimpleDHT», которую можно установить через диспетчер библиотек.
Приведенный выше код вычисляет обе температуры и выводит их на последовательный монитор каждые 0,5 секунды. Он также усредняет каждые 10 показаний термистора. Код также выводит разницу между двумя методами датчика температуры. Ниже я нанес на график разницу температур, чтобы показать среднее отклонение между термистором и DHT22.
Разница между показаниями температуры термистора DHT22 и NTC
В среднем и в зависимости от фактической температуры разница может составлять 0,05 C — 1,5 C. И этот диапазон, вероятно, связан с несколькими вещами: АЦП на Arduino несколько шумит, даже с конденсатором и внешним опорным напряжением 3,3 В. — не говоря уже о том, что он всего 10-битный; уравнение термистора также содержит некоторую погрешность, поэтому для очень точных показаний интерполяция температуры за температурой будет наиболее точным способом обеспечения качественных результатов; и, наконец, DHT22 дополнительно несет с собой ошибку 0,5 C, поэтому мы можем ожидать, что ошибки между ними будут достигать 2 C. Таким образом, тот факт, что мы видим разницу между ними всего в 0,5 C, не так уж плох!
Чтобы сравнить возможности двух датчиков, график ниже демонстрирует мощность термистора и слабость DHT22:
Разница между DHT22 и термистором во время горячего порыва
На приведенном выше графике легко увидеть мощность термистора и его способность справляться с быстро меняющимися сценариями. DHT22 рассчитан только на частоту обновления 0,5 с и на самом деле может обрабатывать только температуру окружающей среды, а не большие всплески тепла или холода. График ниже действительно иллюстрирует недостатки способности DHT22 справляться с резкими перепадами температуры. Термисторы довольно быстро реагируют на температуру, в то время как DHT22 снимает несколько показаний. DHT22 также требует некоторого времени для восстановления после периода нагрева, в первую очередь из-за его корпуса и медленного отклика компонентов.
Термистор и тепловые характеристики DHT22
Термистор является явным победителем, когда колебания температуры имеют большое значение для измерений. Вот почему их часто используют в экспериментах, где температура колеблется быстро и необходимы точные измерения.
Заключение
Рис. 7: Стеклянный термистор рядом с датчиком температуры DHT22.
В этой статье я рассказал о термисторах и о том, как реализовать их в Arduino, подгоняя данные заводской калибровки для получения точных коэффициентов для определения температуры по сопротивлению. Я также обсудил, как использовать делитель напряжения для измерения напряжения как функции сопротивления, выдаваемого термистором. И, наконец, я использовал датчик температуры DHT22, чтобы сравнить точность и преимущества использования термистора.
Термисторы используются в самых разных областях благодаря их точности, высокой чувствительности в быстро меняющихся условиях, а также их недорогому и простому в использовании аппаратному обеспечению. Одной из трудностей при использовании термисторов является их нелинейный отклик, однако с качественной калибровкой и кривыми отклика нелинейные эффекты можно устранить. Есть много других экспериментов, которые можно провести с термисторами для анализа их временных характеристик, снижения нелинейных помех и исследования эффектов самонагрева. Этот проект должен был представить термисторы и их теорию, а также улучшить понимание того, почему они являются отличным выбором по сравнению с другими методами измерения температуры.
Спасибо PCBGOGO за помощь в прототипировании печатных плат и за поддержку меня в этом проекте.
Если вам понравился эксперимент, поделитесь проектом и перейдите на сайт pcbgogo.