Схема подключения терморезистора к микроконтроллеру. Температурные датчики

Часто в различных источниках питания возникает задача ограничить стартовый бросок тока при включении. Причины могут быть разные – быстрый износ контактов реле или выключателей, сокращение срока службы конденсаторов фильтра итд. Такая задача недавно возникла и у меня. В компьютере я использую неплохой серверный блок питания, но за счет неудачной реализации секции дежурного режима, происходит сильный ее перегрев при отключении основного питания. Из-за этой проблемы уже 2 раза пришлось ремонтировать плату дежурного режима и менять часть электролитов, находящихся рядом с ней. Решение было простое – выключать блок питания из розетки. Но оно имело ряд минусов – при включении происходил сильный бросок тока через высоковольтный конденсатор, что могло вывести его из строя, кроме того, уже через 2 недели начала обгорать вилка питания блока. Решено было сделать ограничитель бросков тока. Параллельно с этой задачей, у меня была подобная задача и для мощных аудио усилителей. Проблемы в усилителях те же самые – обгорание контактов выключателя, бросок тока через диоды моста и электролиты фильтра. В интернете можно найти достаточно много схем ограничителей бросков тока. Но для конкретной задачи они могут иметь ряд недостатков – необходимость пересчета элементов схемы для нужного тока; для мощных потребителей – подбор силовых элементов, обеспечивающих необходимые параметры для расчетной выделяемой мощности. Кроме того, иногда нужно обеспечить минимальный стартовый ток для подключаемого устройства, из-за чего сложность такой схемы возрастает. Для решения этой задачи есть простое и надежное решение – термисторы.

Рис.1 Термистор

Термистор – это полупроводниковый резистор, сопротивление которого резко изменяется при нагреве. Для наших целей нужны термисторы с отрицательным температурным коэффициентом – NTC термисторы. При протекании тока через NTC термистор он нагревается и его сопротивление падает.


Рис.2 ТКС термистора

Нас интересуют следующие параметры термистора:

    Сопротивление при 25˚С

    Максимальный установившийся ток

Оба параметра есть в документации на конкретные термисторы. По первому параметру мы можем определить минимальный ток, который пройдет через сопротивление нагрузки при подключении ее через термистор. Второй параметр определяется максимальной рассеиваемой мощностью термистора и мощность нагрузки должна быть такой, что бы средний ток через термистор не превысил это значение. Для надежной работы термистора нужно брать значение этого тока меньшее на 20 процентов от параметра, указанного в документации. Казалось бы, что проще – подобрать нужный термистор и собрать устройство. Но нужно учитывать некоторые моменты:

  1. Термистор достаточно долго остывает. Если выключить устройство и сразу включить опять, то термистор будет иметь низкое сопротивление и не выполнит свою защитную функцию.
  2. Нельзя соединять термисторы параллельно для увеличения тока – из-за разброса параметров ток через них будет сильно различаться. Но вполне можно соединять нужное к-во термисторов последовательно.
  3. При работе происходит сильный нагрев термистора. Греются также элементы рядом с ним.
  4. Максимальный установившийся ток через термистор должен ограничиваться его максимальной мощностью. Этот параметр указан в документации. Но если термистор используется для ограничения коротких бросков тока (например, при первоначальном включении блока питания и зарядке конденсатора фильтра), то импульсный ток может быть больше. Тогда выбор термистора ограничен его максимальной импульсной мощностью.

Энергия заряженного конденсатора определяется формулой:

E = (C*Vpeak²)/2

где E – энергия в джоулях, C – емкость конденсатора фильтра, Vpeak – максимальное напряжение, до которого зарядится конденсатор фильтра (для наших сетей можно взять значение 250В*√2 = 353В).

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

Я взял таблицу с параметрами термисторов NTC фирмы Joyin. В таблице указаны:

Rном - номинальное сопротивление термистора при температуре 25°С

Iмакс - максимальный ток через термистор (максимальный установившийся ток)

Смакс - максимальная емкость в тестовой схеме, которую разряжают на термистор без его повреждения (тестовое напряжение 350v)

Как проводится тестовое испытание, можно посмотреть на седьмой странице.

Несколько слов о параметре Смакс – в документации показано, что в тестовой схеме конденсатор разряжается через термистор и ограничительный резистор, на котором выделяется дополнительная энергия. Поэтому максимальная безопасная емкость, которую сможет зарядить термистор без такого сопротивления, будет меньше. Я поискал информацию в зарубежных тематических форумах и посмотрел типовые схемы с ограничителями в виде термисторов, на которые приведены данные. Исходя из этой информации, можно взять коэффициент для Смакс в реальной схеме 0.65, на который умножить данные из таблицы.

Наименование

Rном,

Iмакс,

Смакс,

д иаметр 8мм

диаметр 10мм

диаметр 13мм

диаметр 15мм

диаметр 20мм

Таблица параметров NTC термисторов фирмы Joyin

Соединяя несколько одинаковых NTC термисторов последовательно, мы уменьшаем требования к максимальной импульсной энергии каждого из них.

Приведу пример. Например, нам необходимо подобрать термистор для включения блока питания компьютера. Максимальная мощность потребления компьютера – 700 ватт. Мы хотим ограничить стартовый ток величиной 2-2.5А. В блоке питания установлен конденсатор фильтра 470мкФ.

Считаем действующее значение тока:

I = 700Вт/220В = 3.18А

Как писал выше, для надежной работы термистора, выберем максимальный установившийся ток из документации на 20% больше этой величины.

Iмакс = 3.8А

Считаем нужное сопротивление термистора для стартового тока 2.5А

R = (220В*√2)/2.5А = 124 Ом

Из таблицы находим нужные термисторы. 6 штук последовательно включенных термисторов JNR15S200L подходят нам по Iмакс , общему сопротивлению. Максимальная емкость, которую они могут зарядить будет равна 680мкФ*6*0.65=2652мкФ, что даже больше, чем нам нужно. Естественно, при понижении Vpeak , понижаются и требования к максимальной импульсной мощности термистора. Зависимость у нас от квадрата напряжения.

И последний вопрос по поводу выбора термисторов. Что, если мы подобрали необходимые по максимальной импульсной мощности термисторы, но они нам не подходят по Iмакс (постоянная нагрузка для них слишком велика), либо в самом устройстве нам не нужен источник постоянного нагрева? Для этого мы применим простое решение – добавим в схему еще один выключатель параллельно термистору, который включим после зарядки конденсатора. Что я и сделал в своем ограничителе. В моем случае параметры такие – максимальная мощность потребления компьютера 400вт, ограничение стартового тока – 3.5А, конденсатор фильтра 470мкФ. Я взял 6 штук термисторов 15d11 (15 ом). Схема приведена ниже.


Рис. 3 Схема ограничителя

Пояснения по схеме. SA1 отключает фазовый провод. Светодиод VD2 служит для индикации работы ограничителя. Конденсатор C1 сглаживает пульсации и светодиод не мерцает с частотой сети. Если он вам не нужен, то уберите из схемы C1, VD6, VD1 и просто соедините параллельно светодиод и диод по аналогии элементов VD4, VD5. Для индикации процесса зарядки конденсатора, параллельно термисторам включен светодиод VD4. В моем случае при зарядке конденсатора блока питания компьютера, весь процесс занимает менее секунды. Итак, собираем.


Рис.4 Набор для сборки

Индикацию питания я собрал непосредственно в крышке от выключателя, выкинув из нее китайскую лампу накаливания, которая бы прослужила недолго.


Рис. 5 Индикация питания


Рис.6 Блок термисторов


Рис. 7 Собранный ограничитель

На этом можно было бы закончить, если бы через неделю работы не вышли из строя все термисторы. Выглядело это так.


Рис. 8 Выход из строя NTC термисторов

Несмотря на то, что запас по допустимой величине емкости был очень большой – 330мкФ*6*0.65=1287мкФ.

Термисторы брал в одной известной фирме, причем разных номиналов – все брак. Производитель неизвестен. Либо китайцы заливают в большие корпуса термисторы меньших диаметров, либо качество материалов очень плохое. В итоге купил даже меньшего диаметра - SCK 152 8мм. То же Китай, но уже фирменные. По нашей таблице допустимая емкость 100мкФ*6*0.65=390мкФ, что даже немного меньше, чем нужно. Тем не менее, все работает отлично.

Узнайте о термисторах и о том, как запрограммировать Arduino для измерения их данных.

Вы когда-нибудь задумывались над тем, как некоторые устройства, такие как термостаты, нагревательные площадки 3D принтеров, автомобильные двигатели и печи измеряют температуру? В этой статье вы можете это узнать!

Знать температуру может быть очень полезно. Знание температуры может помочь регулировать температуру в помещении до комфортного значения, гарантировать, что нагревательная площадка 3D принтера была достаточно горячей, чтобы такие материалы, как ABS, прилипали к ее поверхности, а также предотвратить перегрев двигателя или не допустить сжигания приготавливаемой еды.

В данной статье мы рассматриваем только один тип датчика, способного измерять температуру. Этот датчик называется термистором.

Термистор обладает сопротивлением, которое намного сильнее зависит от температуры, чем сопротивление других типов резисторов.

Мы буде использовать Arduino для измерения и обработки показаний термистора, после чего мы преобразуем эти показания в удобный для чтения формат единиц измерения температуры.

Ниже приведена фотография термистора, который мы собираемся использовать:

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

Комплектующие

  • Arduino (Mega или Uno или любая другая модель);
  • несколько перемычек;
  • паяльник и припой (возможно, понадобится, если ваш термистор не будет влезать в разъемы на плате Arduino).

Программное обеспечение

  • Arduino IDE

Теория

При типовом использовании резистора вы не хотите, чтобы его сопротивление менялось при изменении температуры. Это не реально в реальной жизни, можно лишь обеспечить небольшое изменение сопротивления при большом изменении температуры. Если бы это было не так, то резисторы странно влияли бы на работу схем, например, светодиод мог бы светиться намного ярче или тусклее по мере изменения температуры окружающей среды.

Но что, если вы действительно хотите, чтобы яркость светодиода была функцией температуры? Здесь появляется термистор. Как вы могли догадаться, у термистора сопротивление сильно изменяется при небольшом изменении температуры. Чтобы проиллюстрировать это, ниже приведена кривая изменения сопротивления термистора:

На рисунке показаны лишь единицы измерения без фактических значений, так как диапазон сопротивлений зависит от типа конкретного термистора. Как вы можете заметить, по мере увеличения температуры сопротивление терморезистора уменьшается. Это является отличительным свойством резистора с отрицательным температурным коэффициентом (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

Оказывается, есть общая формула для подгонки кривой, предназначенная для устройств типа термисторов. Она называется уравнением Штейнхарта-Харта. Ниже представлена его версия (в других версиях используются члены во второй и степени):

\[\frac{1}{T}=A+B\ln(R)+C(\ln(R))^3\]

где R - сопротивление терморезистора при температуре T (в Кельвинах).

Это общее уравнение кривой, подходящее для всех типов NTC термисторов. Аппроксимация связи температуры и сопротивления «достаточно подходит» для большинства применений.

Обратите внимание, что уравнение нуждается в константах A, B и C. Для разных термисторов они различаются и должны быть либо заданы, либо вычислены. Поскольку мы имеем три неизвестных, вам необходимо выполнить три измерения сопротивления при определенных температурах, которые затем могут быть использованы для создания трех уравнений и определения значений этих констант.

Даже для тех из нас, кто хорошо знают алгебру, это всё еще слишком трудоемко.

Вместо этого, есть еще более простое уравнение, которое менее точно, но содержит только одну константу. Эта константа обозначена как β, и поэтому уравнение называется β-уравнением.

\[\frac{1}{T}=\frac{1}{T_o}+(\frac{1}{\beta})\cdot\ln\left(\frac{R}{R_o}\right)\]

где R 0 - сопротивление при контрольной температуре T 0 (например, сопротивление при комнатной температуре). R - сопротивление при температуре T. Температуры указываются в Кельвинах. β обычно указывается в техническом описании; а если нет, то вам необходимо только одно измерение (одно уравнение) для расчета этой константы. Это уравнение я буду использовать для взаимодействия с нашим термистором, поскольку оно является самым простым из тех, с которыми я столкнулся, и не нуждается в линеаризации реакции термистора.

Измерение сопротивления с помощью Arduino

Теперь, когда мы выбрали метод построения кривой, мы должны выяснить, как реально измерить сопротивление с помощью Arduino, прежде чем мы сможем передать информацию о сопротивлении в β-уравнение. Мы можем сделать это используя делитель напряжения:

Это будет наша схема взаимодействия с термистором. Когда термистор определит изменение температуры, это отразится на выходном напряжении.

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

Но нам неинтересно выходное напряжение V выход, нас интересует сопротивление термистора R термистор. Поэтому мы выразим его:

Это намного лучше, но нам необходимо измерить наше выходное напряжение, а также напряжение питания. Так как мы используем встроенный АЦП Arduino, то можем представить напряжение, как числовое значение на определенной шкале. Итак, конечный вид нашего уравнения показан ниже:

Это работает потому, что не имеет значения, как мы представляем напряжение (в вольтах или в цифровых единицах), эти единицы сокращаются в числителе и знаменателе дроби, оставляя безразмерное значение. Затем мы умножаем его на сопротивление, чтобы получить результат в омах.

D max у нас будет равно 1023, так как это самое большое число, которое может выдать наш 10-разрядный АЦП. D измеренное - это измеренное значение аналого-цифровым преобразователем, которое может быть в диапазоне от нуля до 1023.

Всё! Теперь можно приступить к сборке!

Соберем это

Я использовал термистор TH10K.

Также я использовал резистор 10 кОм в качестве R баланс в нашем делителе напряжения. Константы β у меня не было, поэтому я рассчитал ее сам.

Ниже приведена полная схема устройства. Она довольно проста.

А так выглядит конечный макет:

Код программы для Arduino

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

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

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

//=============================================================================== // Константы //=============================================================================== // Связанные с термистором: /* Здесь у нас несколько констант, которые упрощают редактирование кода. Пройдемся по ним. Чтение из АЦП может дать одно значение при одной выборке, а затем немного отличающееся значение при следующей выборке. Чтобы избежать влияния шумов, мы можем считывать значения с вывода АЦП несколько раз, а затем усреднять значения, чтобы получить более постоянное значение. Эта константа используется в функции readThermistor. */ const int SAMPLE_NUMBER = 10; /* Чтобы использовать бета уравнение, мы должны знать номинал второго резистора в нашем делителе. Если вы используете резистор с большим допуском, например, 5% или даже 1%, измерьте его и поместите результат в омах сюда. */ const double BALANCE_RESISTOR = 9710.0; // Это помогает вычислять сопротивление термистора (подробности смотрите в статье). const double MAX_ADC = 1023.0; /* Эта константа зависит от термистора и должна быть в техническом описании, или смотрите статью, как рассчитать ее, используя бета-уравнение. */ const double BETA = 3974.0; /* Необходима для уравнения преобразования в качестве "типовой" комнатной температуры. */ const double ROOM_TEMP = 298.15; // комнатная температура в Кельвинах /* Термисторы обладают типовым сопротивлением при комнатной температуре, укажем его здесь. Опять же, необходимо для уравнения преобразования. */ const double RESISTOR_ROOM_TEMP = 10000.0; //=============================================================================== // Переменные //=============================================================================== // Здесь мы будем хранить текущую температуру double currentTemperature = 0; //=============================================================================== // Объявления выводов //=============================================================================== // Входы: int thermistorPin = 0; // Вход АЦП, выход делителя напряжения //=============================================================================== // Инициализация //=============================================================================== void setup() { // Установить скорость порта для отправки сообщений Serial.begin(9600); } //=============================================================================== // Основной цикл //=============================================================================== void loop() { /* Основной цикл довольно прост, он печатает температуру в монитор последовательного порта. Сердце программы находится в функции readThermistor. */ currentTemperature = readThermistor(); delay(3000); /* Здесь описываем, что делать, если температура слишком высока, слишком низка или идеально подходит. */ if (currentTemperature > 21.0 && currentTemperature < 24.0) { Serial.print("It is "); Serial.print(currentTemperature); Serial.println("C. Ahhh, very nice temperature."); } else if (currentTemperature >= 24.0) { Serial.print("It is "); Serial.print(currentTemperature); Serial.println("C. I feel like a hot tamale!"); } else { Serial.print("It is "); Serial.print(currentTemperature); Serial.println("C. Brrrrrr, it"s COLD!"); } } //=============================================================================== // Функции //=============================================================================== ///////////////////////////// ////// readThermistor /////// ///////////////////////////// /* Эта функция считывает значения с аналогового вывода, как показано ниже. Преобразует входное напряжение в цифровое представление с помощью аналого-цифрового преобразования. Однако, это выполняется несколько раз, чтобы мы могли усреднить значение, чтобы избежать ошибок измерения. Это усредненное значение затем используется для расчета сопротивления термистора. После этого сопротивление используется для расчета температуры термистора. Наконец, температура преобразуется в градусы Цельсия. */ double readThermistor() { // переменные double rThermistor = 0; // Хранит значение сопротивления термистора double tKelvin = 0; // Хранит рассчитанную температуру double tCelsius = 0; // Хранит температуру в градусах Цельсия double adcAverage = 0; // Хранит среднее значение напряжения int adcSamples; // Массив для хранения отдельных результатов // измерений напряжения /* Рассчитать среднее сопротивление термистора: Как упоминалось выше, мы будем считывать значения АЦП несколько раз, чтобы получить массив выборок. Небольшая задержка используется для корректной работы функции analogRead. */ for (int i = 0; i < SAMPLE_NUMBER; i++) { adcSamples[i] = analogRead(thermistorPin); // прочитать значение на выводе и сохранить delay(10); // ждем 10 миллисекунд } /* Затем мы просто усредняем все эти выборки для "сглаживания" измерений. */ for (int i = 0; i < SAMPLE_NUMBER; i++) { adcAverage += adcSamples[i]; // складываем все выборки. . . } adcAverage /= SAMPLE_NUMBER; // . . . усредняем их с помощью деления /* Здесь мы рассчитываем сопротивление термистора, используя уравнение, описываемое в статье. */ rThermistor = BALANCE_RESISTOR * ((MAX_ADC / adcAverage) - 1); /* Здесь используется бета-уравнение, но оно отличается от того, что описывалось в статье. Не беспокойтесь! Оно было перестроено, чтобы получить более "красивую" формулу. Попробуйте сами упростить уравнение, чтобы поупражняться в алгебре. Или просто используйте показанное здесь или то, что приведено в статье. В любом случае всё будет работать! */ tKelvin = (BETA * ROOM_TEMP) / (BETA + (ROOM_TEMP * log(rThermistor / RESISTOR_ROOM_TEMP))); /* Я буду использовать градусы Цельсия для отображения температуры. Я сделал это, чтобы увидеть типовую комнатную температуру, которая составляет 25 градусов Цельсия. */ tCelsius = tKelvin - 273.15; // преобразовать кельвины в цельсии return tCelsius; // вернуть температуру в градусах Цельсия }

Возможные следующие шаги

Всё в данной статье показывает довольно простой способ измерения температуры с помощью дешевого термистора. Есть еще пара способов улучшить схему.

Температура является одним из наиболее распространенных параметров, регистрируемых встраиваемой системой. Для таких измерений существует широкий выбор датчиков температуры. Диапазон типов датчиков простирается от экзотических детекторов черного тела до простейших резистивных сенсоров, включая все множество типов, находящихся между этими полюсами. В этой статье я кратко расскажу о терморезисторах с отрицательным температурным коэффициентом (NTC термисторы) - одних из самых распространенных датчиков температуры, используемых в различных встраиваемых системах.

Термисторы

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

Существуют два типа термисторов, отличающихся характером зависимости сопротивления от температуры. Если значение сопротивления уменьшается с ростом температуры, мы называем это устройство термистор с отрицательным температурным коэффициентом (NTC). Если сопротивление с ростом температуры возрастает, это устройство известно как термистор с положительным температурным коэффициентом (PTC). Как правило, PTC-устройства используются как средства защиты, а NTC-устройства применяются в качестве термодатчиков. Очень часто NTC термисторы применяются для контроля PN-переходов широкополосных лазерных диодов.

Еще одной характеристикой терморезистора является стоимость. В небольших партиях типичный термистор стоит, как правило, от $0.05 до $0.10 за штуку. Низкая цена и простота подключения делают эти устройства весьма привлекательными для встраиваемых приложений.

Типичный диапазон измерения температуры термистора составляет от -50 °C до +125 °C. Большинство приложений, использующих термисторы, работает в диапазоне от -10 °C до +70 °C, или, как его называют, в коммерческом диапазоне температур окружающей среды.

Типовая погрешность сопротивления термистора достаточно велика. Большинство термисторов изготавливается с допустимым отклонением сопротивления ±5%.

Однако их точность вполне приемлема. Как правило, мы можем рассчитывать, что она находится в диапазоне от ±0.5% до ±1.0%.

Выражение, связывающее температуру и сопротивление термистора, известно как уравнение Стейнхарта-Харта. Это нелинейное уравнение показано ниже.

На Рисунке 1 показан график зависимости сопротивления от температуры для NTC термистора ERTJZET472 компании . Этот график показывает, что на линейной шкале зависимость сопротивления от температуры очень нелинейна.

Как правило, термисторы оцениваются по параметру, известному как значение R25. Это типовое сопротивление термистора при 25 °C. Значение R25 для данного термистора составляет 4700 Ом.

Мы можем легко подключить термистор к маломощному источнику тока. Затем мы можем считать напряжение с помощью АЦП и сравнить полученный результат с соответствующей строкой просмотровой таблицы, чтобы узнать истинную температуру. Мы также можем попытаться линеаризовать зависимость сопротивления от температуры.

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

Приближение первого порядка показывает нам, что сопротивление термистора примерно обратно пропорционально температуре. Учитывая это, мы можем создать схему обратной пропорции, чтобы попытаться линеаризовать кривую зависимости сопротивления от температуры. Из Рисунка 2 видно, как это делается.

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

Показания температуры зависят только от сопротивления смещения (RB) и сопротивления термистора (RTH). Мы можем назвать их отношение коэффициентом деления (D). Выражение для коэффициента деления не отличается от выражения для простого делителя напряжения (Уравнениие 2).

На Рисунке 3 показан набор кривых для различных значений сопротивления смещения линеаризующей цепи термистора. Эти графики также демонстрируют достаточную степень линейности в диапазоне от 0 до 70 °C; при этом наилучшая линейность достигается с более низким сопротивлением резистора смещения.

Другим, более хорошим способом взглянуть на это является изображение на графике разности между значениями температуры, взятыми из документации, и линеаризованными значениями. Такой график приведен на Рисунке 4. Этот рисунок также демонстрирует, что лучшая линейность достигается при меньшем значении сопротивления смещения. График показывает, что резистор номиналом 2 кОм даст линейность примерно ±3 °C в диапазоне температур от 0 до 70 °C.

В этом примере линейное выражение для зависимости температуры от коэффициента сопротивлений при номинале резистора смещения 2 кОм приведено в Уравнении 3.

T - температура в градусах Цельсия,
D - коэффициент деления.

На резистивный делитель и АЦП подается одно и то же опорное напряжение. Таким образом, мы можем легко вывести зависимость коэффициента деления от показаний АЦП. Если предположить, что преобразователь имеет разрядность N бит, то получим соотношение, показанное в Уравнении 4.

D - коэффициент деления,
ADC - показания АЦП,
N - разрядность АЦП (количество бит).

Подставив Уравнение 4 в Уравнение 3, получим выражение, связывающее показания АЦП с температурой. Оно представлено Уравнением 5.

Выводы

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

Одним из основных преимуществ использования термисторов является их цена. Как правило, при покупке в небольших количествах эти датчики стоят примерно от $0.05 до $0.10. Точность для этих датчиков вполне приличная. Обычно допуск сопротивления или допуск R25 для этих устройств составляет от ±3% до ±5%. Поэтому схема линеаризации с нелинейностью ±3 °C также может считаться удовлетворительной.

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

  1. Датчики с PN-переходом. Низкая стоимость, приемлемая точность.
  2. Микросхемы датчиков температуры. Обычно они представляют собой некоторую разновидность датчиков с PN-переходом.
  3. Резистивные датчики температуры (RTD). Они, как правило, очень точны и значительно дороже.
  4. Термопары. Их диапазон измерения обычно намного больше, а цена сравнительно невысока.
  5. Инфракрасные датчики. Чаще всего их используют для измерения тепловых излучений, уровни которых затем преобразуют в температуру.

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

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

Я частенько обращал внимание на «хлопки» в выключателях при включении лампочек (особенно светодиодных). Если в роли драйвера у них конденсаторы, то «хлопки» бывают просто пугающие. Эти терморезисторы помогли решить проблему.
Всем ещё со школы известно, что в нашей сети течёт переменный ток. А переменный ток - электрический ток, который с течением времени изменяется по величине и направлению (изменяется по синусоидальному закону). Именно поэтому «хлопки» происходят на каждый раз. Зависит от того, в какой момент вы попали. В момент перехода через ноль хлопка не будет вовсе. Но я так включать не умею:)
Чтобы сгладить пусковой ток, но при этом не оказывать влияние на работу схемы, заказал NTC-термисторы. У них есть очень хорошее свойство, с увеличением температуры их сопротивление уменьшается. То есть в начальный момент они ведут себя как обычное сопротивление, уменьшая своё значение с прогревом.

Терморези́стор (термистор) - полупроводниковый прибор, электрическое сопротивление которого изменяется в зависимости от его температуры.
По типу зависимости сопротивления от температуры различают терморезисторы с отрицательным (NTC-термисторы, от слов «Negative Temperature Coefficient») и положительным (PTC-термисторы, от слов «Positive Temperature Coefficient» или позисторы.)
В мою задачу входило увеличение срока службы лампочек (не только светодиодных), но и защита от порчи (обгорания) выключателей.
Не так давно делал обзор про многооборотное сопротивление. Когда его заказывал, обратил внимание на товар продавца. Там и увидел эти сопротивления. Сразу всё у прода и заказал.


Заказал в конце мая. Посылка дошла за 5 недель. С таким треком добиралась.



Сразу так и не скажешь, что тут 50 штук.

Пересчитал, ровно пятьдесят.
Когда подбирал терморезисторы под свои задачи, у одного продавца выудил вот такую табличку. Думаю, многим она пригодится. 10D-9 расшифровывается просто: сопротивление (при н.у.) 10 Ом, диаметр 9мм.


Ну а я составил свою таблицу на основе тех экспериментов, что провёл. Всё просто. С установки П321, при помощи которой калибрую мультиметры, подавал калиброванный ток.
Падение напряжения на терморезисторе снимал обычным мультиметром.
Есть особенности:
1. При токе 1,8А появляется запах лакокрасочного покрытия терморезистора.
2. Терморезистор спокойно выдерживает и 3А.
3. Напряжение устанавливается не сразу, а плавно приближается к табличному значению по мере прогрева или остывания.
4. Сопротивление терморезисторов при температуре 24˚С в пределах 10-11 Ом.

Красным я выделил тот диапазон, который наиболее применим в моей квартире.
Табличку перенёс на график.


Самая эффективная работа – на крутом спуске.
Изначально предполагал каждый терморезистор вживлять в лампочку. Но поле тестирования полученного товара и снятия характеристик понял, что для них (термисторов) нужна более серьёзная нагрузка. Именно поэтому решил вживить в выключатели, чтобы работали на несколько лампочек сразу. Выводы у резисторов тонковаты, пришлось выходить из ситуации вот таким способом.

Специальной обжимки у меня нет, поэтому работал пассатижами.


Для одинарного выключателя приготовил одинарный клеммник.

Для сдвоенного приготовил другой комплект. С клеммником будет удобнее монтировать.


Основное всё сделано. Встало без проблем.


Работают уже полгода. После установки на место страшных «хлопков» я больше не слышал.
Прошло достаточно времени, чтобы сделать вывод – годятся. И годятся не только для светодиодных лампочек.
А вот такой термистор я нашёл непосредственно в схеме светодиодного драйвера (ITead Sonoff LED- WiFi Dimming LED)
Больших сопротивлений китайцы не ставят, чтобы не мешать правильной работе схемы.


Что ещё хотел сказать в конце. Номинал сопротивления каждый должен подобрать сам в соответствии с решаемыми задачами. Технически грамотному человеку это вовсе не сложно. Когда я заказывал терморезисторы, инфы про них совсем не было. У вас она теперь есть. Смотрите на график зависимости и заказывайте то, что считаете более подходящим под ваши задачи.
На этом ВСЁ!
Удачи!

Планирую купить +80 Добавить в избранное Обзор понравился +80 +153

Терморезисторы изготавливаются из специальных полупроводниковых сплавов или чистых металлов, у которых сопротивление значительно изменяется от температуры. Терморезисторы также называют термосопротивлениями или сокращённо термисторами (терм^Р^^истор).

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

По знаку ТКС различают NTC- и РТС-термисторы.

В термисторах NTC-типа (англ. NTC - Negative Temperature Coefficient) сопротивление уменьшается с повышением температуры окружающей среды. Типичный NTC-термистор при 0°С имеет сопротивление 7… 16 кОм, а при +100°С - 152…339 Ом (Табл. 3.11).

Таблица 3JL Параметры NTC-термисторов (NTC-Thermistor)

NTC- термисторы

Материал

Диапазон сопротивлений [кОм]

Допуск [%]

Мощность [Вт]

ТКС [%/°С]

Диапазон температур [°С]

Си, Со, Мп

«NTC» (фирма EPCOS)

Си, Со, Мп, Ni, Fe

В термисторах РТС-типа или, по-другому, позисторах (англ. РТС - Positive Temperature Coefficient) сопротивление увеличивается с повышением температуры окружающей среды (Табл. 3.12).

Таблица 3,12, Параметры позисторов (Posistor)

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

Главные достоинства термисторов перед другими датчиками температуры - это низкая стоимость и высокая чувствительность, позволяющая регистрировать быстрые колебания температуры. Недостатки: относительно узкий диапазон рабочих температур, «хрупкость» конструкции и нелинейность характеристики. Если температуру измеряет МК, то нелинейность легко учитывается программным путём.

На Рис. 3.64, а…т приведены схемы подключения NTC-термисторов к МК.

Рис. 3.64. Схемы подключения NTC-термисторов к МК {начало)’.

а) базовая схема измерения температуры через АЦП МК. Зависимость сопротивления тер- мистора от температуры в общем случае носит нелинейный характер, поэтому используется табличный метод с заранее подобранными коэффициентами. Таблица преобразования напряжения АЦП в температуру предварительно заносится в ПЗУ МК;

б) если термистор R} подключается к цепи питания, а не к общему проводу, то изменяется наклон зависимости напряжения АЦП от температуры в противоположную сторону;

в) измерение температуры проводится только при ВЫСОКОМ уровне на выходе МК, что экономит ток через делитель /?/, в ждущем режиме. Резистор /?/должен быть точным;

г) усилитель постоянного тока на транзисторе VT1 повышает чувствительность, но сужает температурный диапазон. Ток базы VT1 может выйти за норму при низком сопротивлении RL Шкалу резистора (характеристика поворота «В») размечают в градусах температуры. МК следит за уровнем на входе и в момент «перескока» включает внешний индикатор;

д) МК измеряет разность напряжений на двух делителях: R1, R2w R3, R4. Используются два канала АЦП в дифференциальном режиме. Термисторы R1 и физически устанавливают в разных местах с разной температурой окружающей среды;

Рис. 3.64. Схемы подключения NTC-термисторов к МК {продолжение)’.

е) сначала конденсатор С1 разряжается через резистор R1 НИЗКИМ уровнем с выхода «О/Z» МК. Затем линии «О/Z» и «1/Z» настраиваются в режим входа, а линия «Z/1» в режим выхода с ВЫСОКИМ уровнем. МК измеряет по таймеру время заряда конденсатора С/ через резистор R2JX0 определённого порога (входом служит линия «О/Z»). Конденсатор вновь разряжается через линию МК, после чего аналогичным образом измеряется время заряда конденсатора через термистор R3. Разность двух отсчётов времени пропорциональна разности температур нагрева резисторов R2w R3, которые должны находиться физически в разных местах. Резистор /?/ можно заменить перемычкой при малой ёмкости конденсатора С/;

ж) метод уравновешивания зарядов. В МК на входе может использоваться АЦП или обычная линия порта с фиксированным порогом срабатывания. Если напряжение на конденсаторе С/больше порогового, то на линии «Z/О» устанавливается НИЗКИЙ уровень и происходит разряд ёмкости через резистор R2. Если напряжение меньше порогового, то линия «Z/О» переводится в режим входа без «pull-up» резистора. Конденсатор С/ заряжается через термистор RI. Среднее число циклов «заряд-разряд» за единицу времени пропорционально температуре. Достоинство метода - компенсация наводок с частотой питающей сети и её гармоник;

з) двухдиапазонное измерение температуры через АЦП МК. При низких температурах используется делитель RI, R3, при высоких - R2, R3. Число диапазонов можно увеличить, задей- ствуя другие выходные линии портов МК. Достоинство - компенсация естественной нелинейности термистора R3, повышенная точность измерений;

и) терморезистор /?/ автоматически включается в разрыв между резистором R2 и общим проводом при соединении с розеткой XSI. Резистором R3 выставляется рабочее напряжение на входе МК, близкое к половине питания. Кроме того, этим резистором можно сымитировать процесс быстрого изменения температуры при тестовых проверках;

к) ОУ DAI включается по схеме повторителя напряжения. NTC-термистор R2 (фирма BCcomponents, номер по каталогу 2322-633-83033) изменяет своё сопротивление от 941 кОм до 191 Ом при температуре от-40 до+200°С. Промежуточные значения указаны вдаташите;

Рис. 3.64. Схемы подключения NTC-термисторов к МК (продолжение): л) точное измерение температуры через 22-битный АЦП DA1. Платиновый термистор R2 W2102 (фирма Omega Engineering) обеспечивает высокую стабильность и линейность;

м) оригинальное включение двух половинок микросхемы DAI. Резистором RI устанавливают температурный порог срабатывания, вплоть до полного отключения термистора

н) измерение температуры при помощи термистора Я2и аналогового компаратора МК; о) аналогичнРис. 3.64, н, но с подключением термистора RI к цепи питания (а не к общему проводу) и с возможностью калибровки температуры подстроечным резистором R2\

п) повыщение точности измерения температуры с помощью интегрального стабилизатора напряжения DA /. Внутренний АЦП М К переводится в режим измерения от внешнего ИОН. Резистор /?/линеаризирует температурную характеристику термистора R3 в узком диапазоне; р) аналогичнРис.3.64, п, но со стабилитроном VD1 и без линеаризации характеристики;

Рис. 3.64. Схемы подключения ЫТС-термисторов к МК {окончание)-. с) резистором R4 производится балансировка моста, содержащего термистор R2. Резисторы /?/, R3, рекомендуется применить высокоточные, например, ± 1 %. Термистор R2- про

волочный ТСМ-ЮОМ (медный, -50…+200°С), ТСМ-ЮОП (платиновый, -200…+750°С) или самодельный, состоящий из 11 м медного провода ПЭВ-0.05. При подборе замены следует знать стандартный ряд номиналов проволочных измерительных термисторов: 100; 500; 1000 Ом;

т) термистор R1 входит в состав делителя, напряжение на котором измеряется через АЦП МК. Конденсатор С/ снижает помехи при значительном удалении /?/ от МК и при большом уровне наводок. Термистор R1 самодельный проволочный с ТКС примерно 10 Ом/°С. Он содержит 1300 витков медного провода ПЭЛ-0.05, намотанных на каркасе диаметром 7 мм. Достоинство проволочного датчика - стабильный и предсказуемый ТКС, широкий диапазон измеряемых температур -100…+500°С. Если требуется расширить диапазон до -200…+850°С, то следует применить промышленный платиновый термистор.