- Делаем датчик температуры своими руками
- Принцип работы
- Изготовление простого термодатчика
- Сборка
- Проверка
- Настройка
- Термодатчик на германиевых диодах
- Применение термодатчика на Ардуино
- Заключение
- Видео по теме
- Индикатор изменения температуры с терморезистором и корпусом из реле
- Измерение температуры с помощью термистора NTC
- Необходимые компоненты
- Комплектующие
- Программное обеспечение
- Теория
- Четыре подхода к нахождению формулы для построения кривой
- Метод 1
- Метод 2
- Метод 3
- Метод 4
- Измерение сопротивления с помощью Arduino
- Соберем это
- Код программы для Arduino
- Возможные следующие шаги
Делаем датчик температуры своими руками
Термодатчик, собранный своими руками, может принести несомненную пользу, как в домашнем, так и приусадебном хозяйстве. Контроллер температуры окружающей среды вовремя включит или наоборот выключит вентилятор, обогреватель, кипятильник, тёплые полы и много других приборов в доме, обогреет или проветрит теплицы. При наличии минимального опыта работы с инструментами сделать датчик температуры своими руками не составит особого труда.
Принцип работы
Идея создания термодатчика состоит в том, что в его качестве используется электропроводной элемент, который под воздействием колебаний температуры окружающей среды меняет своё сопротивление. Таким элементом является терморезистор.
Принцип работы переменного сопротивления заключается в том, что при нагреве сопротивление понижается и ток, протекающий через него, меняет свою характеристику. Этот процесс находит своё отражение в работе прикладной схемы, которая включает или выключает соответствующие приборы.
Изготовление простого термодатчика
Перед тем, как сделать датчик температуры, нужно подготовить следующее:
- блок питания 12 В;
- вентилятор (кулер от компьютера 12 В);
- терморезистор VDR1 (10 кОм);
- переменный резистор (10 кОм);
- полевой транзистор IRFZ 44;
- макетная плата;
- провода;
- паяльник с припоем.
Сборка
Подготовив вышеперечисленные материалы и инструмент, переходят к пайке простенькой схемы.
- Плюсовую клемму блока питания соединяют проводом с входным контактом (+) кулера;
- Три вывода полевого транзистора спаивают проводами так: «исток» с кулером, «затвор» с терморезистором, «сток» с переменным резистором.
- Проводами соединяют свободные контакты терморезистора с «+» блока питания, переменного резистора с «−» того же блока.
Проверка
Тестируют терморегулятор в таком порядке:
- к терморезистору подносят горящую спичку или зажигалку при этом должен заработать кулер;
- при остывании вентилятор должен выключиться;
- если схема не срабатывает, нужно перепроверить пайку и контакты.
TR — терморезистор, К — кулер, R1 — переменный резистор, ПТ — полевой транзистор, АБ — аккумуляторная батарея 12 В.
Настройка
В данном случае используется терморезистор, сопротивление которого равно 10 кОм при температуре воздуха 20 °С. При его нагреве сопротивление падает. Нужно подстроить переменный резистор на включение кулера в момент нагрева датчика. Методом подбора нескольких положений поворотного регулятора переменного сопротивления добиваются нужного эффекта.
Термодатчик на германиевых диодах
Особенностью германиевых полупроводниковых диодов является их высокая чувствительность к изменениям температуры воздуха. Поэтому эти радиодетали могут использоваться, как термодатчики при их обратном включении.
Их применение объясняется сильной зависимостью обратного тока от температуры окружающей среды. Эта особенность диодов используется в простой схеме регулятора скорости кулера.
Германиевые диоды, соединённые параллельно (3–4 шт.), включают в обратном направлении в цепь базы составного транзистора. Их стеклянные корпуса можно крепить прямо на кулер без всяких прокладок-теплоотводов. Резистор R1 предохраняет транзистор от теплового пробоя, а R2 определяет порог срабатывания регулятора. Если при превышении комнатной температуры вентилятор не включается, то число диодов надо увеличить. Когда кулер начинает вращать лопасти с большой скоростью количество радиодеталей уменьшают.
Применение термодатчика на Ардуино
Для сборки измерителя температуры в основе которого микроконтроллер Arduino нужно подготовить следующее:
- Ардуино UNO;
- коннекторы;
- монтажная плата;
- цифровой модуль DS18B20 (диапазон от −56 до +1250 С).
Цифровой температурный датчик DS18B20 — это устройство, которое не только сигнализирует о превышении заданного температурного порога, но и может запоминать значения измерений. Микросхема датчика имеет три выходных контакта — это «+», «−» и сигнальный провод. Термодатчик в водонепроницаемом исполнении используется для измерения нагрева воды или жидкостей.
Термодатчик всегда можно приобрести, как и плату Arduino, в интернет-магазинах. Цифровой модуль подсоединяют к Ардуино через каналы GND, а выход Vdd подключается к 5V, Data к любому Pin. Для более понятного восприятия схема подключения цифрового датчика DS18B20 к Ардуино представлена на нижеследующем фото.
Заключение
В зависимости от цели использования измерителя температуры окружающего пространства для самостоятельного его изготовления можно выбрать наиболее приемлемый и выгодный по затратам вариант. Для охлаждения энергозатратных плат достаточно использовать простую схему с кулером. А вот для работы с вентиляционным и обогревательным оборудованием уже понадобится более сложная система с использованием микроконтороллера Ардуино и термодатчиков заводского изготовления.
Видео по теме
Источник
Индикатор изменения температуры с терморезистором и корпусом из реле
Здравствуйте.
В этой статье я покажу, как изготовить электромеханический индикатор изменения температуры. Эта схема благодаря своей простоте и наглядности может служить для ознакомления детей с основами электроники и привлечения их к изучению физики.
Важно отметить, что устройство является именно индикатором изменения температуры, а не термометром. Как и всякий индикатор, данный прибор не показывает точное значение измеряемой величины (в данном случае температуры), а лишь демонстрирует её изменение.
Почти все детали для изготовления индикатора можно достать из старых неисправных приборов.
Материалы и инструменты:
— два резистора на 51 Ом;
— подстроечный резистор на 150 Ом;
— термистор;
— выключатель;
— двухконтактный разъём (не обязательно);
— стрелочный миллиамперметр;
— аккумулятор с номинальным напряжением 1.2 В типоразмера АА или пальчиковая батарейка;
— провод монтажный диаметром 0.2-0.5 мм.
— макетная плата (не обязательно);
— паяльник;
— флюс и припой;
Индикатор представляет собой измерительный мост Уитстона. Кружок с буквой А обозначает амперметр (в данном случае миллиамперметр), он подключён непосредственно к измерительному мосту состоящему из четырёх резисторов. R1 и R3 это постоянные резисторы номиналом 51 Ом. Резистор R2 является резистором переменного сопротивления и служит для настройки схемы. R изм. – термистор, он служит для преобразования изменения температуры в изменение сопротивления. Мост Уитстона работает следующим образом, R1 и R2 представляют собой одно плечо (ветвь) моста, а R3 и R изм. – второе. Когда сопротивление обоих плеч равно ток не течёт через амперметр, стрелка находится на нулевом значении. Но если сопротивление одного из плеч меняется через амперметр начинает течь ток значение которого тем выше, чем больше разница сопротивлений, соответственно тем сильнее отклоняется стрелка. Важно, что мост Уитстона позволяет определять сравнительно малые изменения значения сопротивления, для построения индикатора это имеет большое значение, поскольку изменение сопротивления термистора составляет несколько десятков Ом.
Важно заметить, что помимо термистора так же существует позистор, и хотя оба элемента часто называют просто терморезистором, следует помнить, что они обладают противоположными характеристиками. Сопротивление термистора при нагревании снижается, а позистора – повышается.
Термистор не обязательно покупать, его можно найти на плате старого неисправного монитора или телевизора. В большинстве случаев деталь имеет вид как на картинке ниже, но может отличаться цветом корпуса.
Поскольку деталь внешне похожа на керамический конденсатор, стоит, достав её из неисправного прибора провести несложную проверку, подключить к выводам детали мультиметр установленный в режим измерения сопротивления, прибор должен показать значения в пределах 15 – 30 Ом. При нагреве корпуса детали сопротивление должно уменьшиться.
Ниже я привёл схему, по которой собран мой образец индикатора.
После припаял разъём для подключения термистора, выключатель, и аккумулятор (в случае использования батарейки, целесообразно припаять специальный держатель, а уже в него установить батарейку). После этого припаял миллиамперметр, который был взят из старого магнитофона, но вы можете воспользоваться любым другим, с номинальным током до 200 мА.
Выводы компонентов стоит тщательно заизолировать, особенно в случае использования металлического корпуса для сборки прибора.
После этого я спаял измерительный кабель, состоящий из термистора отрезка двужильного провода и штекера. Термистор не имеет полярности, поэтому сборка кабеля не должна вызвать затруднений.
Затем я произвёл предварительную настройку. Суть её заключается в следующем: включив прибор, необходимо вращая винт подстроечного резистора установить стрелку миллиамперметра примерно посередине шкалы. После этого необходимо нагреть термистор (например, при помощи паяльника), если стрелка отклонится вправо, всё в порядке, если же стрелка отклоняется влево необходимо изменить полярность подключения миллиамперметра.
После этого я перешел к изготовлению корпуса. Подобрав по размеру корпус реле, в моём случае от РС-13, Просверлил в нём отверстия под разъём и для доступа к подстроечному резистору.
Прибор получился достаточно чувствительным, если установить стрелку на границе зелёной части шкалы, а после, зажать термистор в пальцах, стрелка за несколько секунд подберётся к красной части шкалы. Если же термистор поместить в снег или охлаждённую воду стрелка напротив, сместится влево.
Вот ещё несколько фотографий устройства:
Источник
Измерение температуры с помощью термистора NTC
Узнайте о термисторах и о том, как запрограммировать Arduino для измерения их данных.
Вы когда-нибудь задумывались над тем, как некоторые устройства, такие как термостаты, нагревательные площадки 3D принтеров, автомобильные двигатели и печи измеряют температуру? В этой статье вы можете это узнать!
Знать температуру может быть очень полезно. Знание температуры может помочь регулировать температуру в помещении до комфортного значения, гарантировать, что нагревательная площадка 3D принтера была достаточно горячей, чтобы такие материалы, как ABS, прилипали к ее поверхности, а также предотвратить перегрев двигателя или не допустить сжигания приготавливаемой еды.
В данной статье мы рассматриваем только один тип датчика, способного измерять температуру. Этот датчик называется термистором.
Термистор обладает сопротивлением, которое намного сильнее зависит от температуры, чем сопротивление других типов резисторов.
Мы буде использовать Arduino для измерения и обработки показаний термистора, после чего мы преобразуем эти показания в удобный для чтения формат единиц измерения температуры.
Ниже приведена фотография термистора, который мы собираемся использовать:
Терморезистор
Необходимые компоненты
Комплектующие
- Arduino (Mega или Uno или любая другая модель);
- несколько перемычек;
- паяльник и припой (возможно, понадобится, если ваш термистор не будет влезать в разъемы на плате Arduino).
Программное обеспечение
Теория
При типовом использовании резистора вы не хотите, чтобы его сопротивление менялось при изменении температуры. Это не реально в реальной жизни, можно лишь обеспечить небольшое изменение сопротивления при большом изменении температуры. Если бы это было не так, то резисторы странно влияли бы на работу схем, например, светодиод мог бы светиться намного ярче или тусклее по мере изменения температуры окружающей среды.
Но что, если вы действительно хотите, чтобы яркость светодиода была функцией температуры? Здесь появляется термистор. Как вы могли догадаться, у термистора сопротивление сильно изменяется при небольшом изменении температуры. Чтобы проиллюстрировать это, ниже приведена кривая изменения сопротивления термистора:
График зависимости сопротивления термистора от температуры
На рисунке показаны лишь единицы измерения без фактических значений, так как диапазон сопротивлений зависит от типа конкретного термистора. Как вы можете заметить, по мере увеличения температуры сопротивление терморезистора уменьшается. Это является отличительным свойством резистора с отрицательным температурным коэффициентом (Negative Temperature Coefficient), или, кратко, NTC термистора.
Существуют также терморезисторы с положительным температурным коэффициентом (Positive Temperature Coefficient, PTC), сопротивление которых увеличивается по мере роста температуры. Однако, PTC термисторы имеют своего рода точку перелома и сильно меняют сопротивление при некоторой температуре. Это делает взаимодействие с PTC термисторами чуть более сложным. По этой причине в большинстве дешевых измерителей температуры предпочтительнее использовать NTC термисторы.
В оставшейся части статьи, как вы можете догадаться, мы будем говорить о терморезисторах типа NTC.
Четыре подхода к нахождению формулы для построения кривой
Теперь, когда мы лучше понимаем поведение термисторов, вы можете удивиться, как мы можем использовать Arduino для измерения температуры. Кривая на графике выше нелинейна и, следовательно, простое линейное уравнение нам не подходит (на самом деле мы можем вывести уравнение, но об этом позже).
Так что же делать?
Прежде чем продолжить, подумайте, как бы вы это сделали на Arduino или даже в схеме без микропроцессорных компонентов.
Существует несколько способов решения этой проблемы, которые перечислены ниже. Это далеко не полный список всех методик, но он покажет вам некоторые популярные подходы.
Метод 1
Некоторые производители предоставляют настолько полную информацию, что в ней содержится весь график, отображающий определенные диапазоны целочисленных значений температуры и сопротивления (типовые значения). Один такой термистор может быть найден в техническом описании от компании Vishay.
Как, имея такие подробные данные, можно было бы реализовать измерение температуры на Arduino. Вам нужно было бы жестко прописать в коде все эти значения в огромной таблице поиска или очень длинных структурах управления » switch. case » или » if. else «.
А если производитель не удосужился предоставить подробную таблицу, то вам придется самостоятельно измерить каждую точку для формирования такой таблицы. Этот день будет для программиста довольно уныл. Но этот метод не так уж и плох и имеет место в использовании. Если текущий проект проверяет лишь несколько точе или даже небольшой диапазон, этот способ может быть предпочтительным. Например, одна такая ситуация возникает, если вы хотите измерить, находятся ли значения выбранных диапазонах температур, и зажечь светодиод для индикации этого состояния.
Но в нашем проекте мы хотим измерять температуру в почти непрерывном диапазоне и отправлять показания на монитор последовательного порта, поэтому этот метод использовать не будем.
Метод 2
Вы можете попытаться «линеаризовать» реакцию термистора, добавив к нему дополнительную схему.
Одним из популярных способов выполнения этого является подключение резистора параллельно термистору. Некоторые микросхемы предлагают сделать это за вас.
Определение того, как выбрать и линеаризовать участок кривой, вместе с выбором правильного номинала резистора – это тема для отдельной статьи. Этот подход хорош, если микропроцессор не может вычислять выражения с плавающей запятой (например, PICAXE), поскольку он упрощает реакцию в некотором диапазоне температур до линейного характера. Это также упрощает проектирование схемы, в которой нет микропроцессора.
Но у нас в этой статье микропроцессор используется, и мы хотим измерять температуру во всем диапазоне.
Метод 3
Вы можете взять данные из таблицы в техническом описании или (если нравятся извращения) сформировать собственную таблицу, выполнив самостоятельные измерения и воссоздав график в чем-то типа Excel. Затем вы можете использовать функцию подгонки кривой для создания формулы этой кривой. Это неплохая идея, и вся выполненная работа даст красивую формулу, которую вы сможете использовать в программе. Но это займет некоторое время для предварительной обработки данных.
Хотя это разумный подход, мы не хотим зависеть от анализа всех этих данных. Кроме того, каждый термистор немного отличается (но, конечно, это не проблема, если допуск довольно низок).
Метод 4
Оказывается, есть общая формула для подгонки кривой, предназначенная для устройств типа термисторов. Она называется уравнением Штейнхарта-Харта. Ниже представлена его версия (в других версиях используются члены во второй и степени):
где R – сопротивление терморезистора при температуре T (в Кельвинах).
Это общее уравнение кривой, подходящее для всех типов NTC термисторов. Аппроксимация связи температуры и сопротивления «достаточно подходит» для большинства применений.
Обратите внимание, что уравнение нуждается в константах A, B и C. Для разных термисторов они различаются и должны быть либо заданы, либо вычислены. Поскольку мы имеем три неизвестных, вам необходимо выполнить три измерения сопротивления при определенных температурах, которые затем могут быть использованы для создания трех уравнений и определения значений этих констант.
Даже для тех из нас, кто хорошо знают алгебру, это всё еще слишком трудоемко.
Вместо этого, есть еще более простое уравнение, которое менее точно, но содержит только одну константу. Эта константа обозначена как β, и поэтому уравнение называется β-уравнением.
где R0 – сопротивление при контрольной температуре T0 (например, сопротивление при комнатной температуре). R – сопротивление при температуре T. Температуры указываются в Кельвинах. β обычно указывается в техническом описании; а если нет, то вам необходимо только одно измерение (одно уравнение) для расчета этой константы. Это уравнение я буду использовать для взаимодействия с нашим термистором, поскольку оно является самым простым из тех, с которыми я столкнулся, и не нуждается в линеаризации реакции термистора.
Измерение сопротивления с помощью Arduino
Теперь, когда мы выбрали метод построения кривой, мы должны выяснить, как реально измерить сопротивление с помощью Arduino, прежде чем мы сможем передать информацию о сопротивлении в β-уравнение. Мы можем сделать это используя делитель напряжения:
Делитель напряжения для измерения сопротивления термистора
Это будет наша схема взаимодействия с термистором. Когда термистор определит изменение температуры, это отразится на выходном напряжении.
Теперь, как обычно, мы используем формулу для делителя напряжения.
Но нам неинтересно выходное напряжение Vвыход, нас интересует сопротивление термистора Rтермистор. Поэтому мы выразим его:
Это намного лучше, но нам необходимо измерить наше выходное напряжение, а также напряжение питания. Так как мы используем встроенный АЦП Arduino, то можем представить напряжение, как числовое значение на определенной шкале. Итак, конечный вид нашего уравнения показан ниже:
Это работает потому, что не имеет значения, как мы представляем напряжение (в вольтах или в цифровых единицах), эти единицы сокращаются в числителе и знаменателе дроби, оставляя безразмерное значение. Затем мы умножаем его на сопротивление, чтобы получить результат в омах.
Dmax у нас будет равно 1023, так как это самое большое число, которое может выдать наш 10-разрядный АЦП. Dизмеренное – это измеренное значение аналого-цифровым преобразователем, которое может быть в диапазоне от нуля до 1023.
Всё! Теперь можно приступить к сборке!
Соберем это
Я использовал термистор TH10K.
Также я использовал резистор 10 кОм в качестве Rбаланс в нашем делителе напряжения. Константы β у меня не было, поэтому я рассчитал ее сам.
Ниже приведена полная схема устройства. Она довольно проста.
Схема измерения температуры с помощью Arduino и NTC термистора
А так выглядит конечный макет:
Макет измерения температуры с помощью Arduino и NTC термистора
Код программы для Arduino
Код снабжен большим количеством комментариев, чтобы помочь вам понять логику программы.
В основном он измеряет напряжение на делителе, вычисляет температуру, а затем показывает ее в терминале последовательного порта.
Для забавы добавлены также некоторые операторы » if. else «, чтобы показать, как вы можете действовать в зависимости от диапазона температур.
Возможные следующие шаги
Всё в данной статье показывает довольно простой способ измерения температуры с помощью дешевого термистора. Есть еще пара способов улучшить схему:
- добавить небольшой конденсатор параллельно выходу делителя. Это стабилизирует напряжение и может даже устранить необходимость усреднения большого количества выборок (как было сделано в коде) – или, по крайней мере, мы сможете усреднять меньшее количество выборок;
- использовать прецизионные резисторы (допуск меньше 1%), чтобы получить более предсказуемые измерения. Если вам критична точность измерений, имейте в виду, что самонагревание термистора может повлиять на измерения; в данной статье самонагрев не компенсируется.
Конечно, термисторы – это только один из датчиков, используемых для измерения температуры. Другой популярный выбор – это микросхемы датчиков (пример работы с одной из них описан здесь). В этом случае вам не придется иметь дело с линеаризацией и сложными уравнениями. Два других варианта – это термопара и инфракрасный тип датчика; последний может измерять температуру без физического контакта, но он уже не так дешев.
Надеюсь, статья оказалась полезной. Оставляйте комментарии!
Источник