Как измерить температуру с помощью термистора NTC?


17

У меня есть терморезистор TTC103 NTC. Он имеет сопротивление нулевой мощности 10 кОм при 25 ° C и значение B25 / 50 4050. Как я могу использовать его для измерения температуры?


Эй, у меня точно такой же термистор :)
Абдулла Кахраман

Ответы:


12

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

Уравнение Стейнхарта – Харта является моделью сопротивления полупроводника при различных температурах. Уравнение:

1T=A+Bln(R)+C(ln(R))3

где:

  • - температура (в градусах Кельвина)T
  • - сопротивление при Т (в омах)RT
  • , B и C - коэффициентыСтейнхарта – Харта,которые варьируются в зависимости от типа и модели термистора и диапазона температур, представляющих интерес. (Наиболее общая форма применяемого уравнения содержит член ( ln ( R ) ) 2 , но им часто пренебрегают, поскольку он обычно намного меньше других коэффициентов и поэтому не показан выше.)ABC(ln(R))2

- уравнение Стейнхарта-Харта - Википедия, Свободная энциклопедия

Многие производители предоставляют примечания по применению (например, здесь ), подробно описывающие, как откалибровать данный NTC, если вы хотите точность выше заявленной производственной погрешности.

Предоставленный B-коэффициент можно использовать в упрощенном уравнении Стейнхарта-Харта, как описано в статье «Термистор Википедии» в разделе «Уравнение параметра B» .


1
Все три ответа выглядят хорошо, но этот помог мне больше всего.
AndrejaKo

1
Как ты справился с ? LN
Абдулла Кахраман

2
Почему я должен идти в Википедию для уравнения? Не могли бы вы дать это здесь?
Федерико Руссо

Вы говорите о производственном допуске. Но как я могу разработать допуск, если у меня есть только B, допуск B, допуск R25? Как NTCLE203
thexeno

@thexeno вставьте максимальные и минимальные значения в электронную таблицу и вычислите ее по желаемому временному диапазону.
Ник Т

13

Используйте его как одну ногу (скажем, «верхнюю» ногу) в цепи делителя напряжения с другой ногой, являющейся известным сопротивлением. Измерьте напряжение в средней точке делителя (например, с помощью аналого-цифрового преобразователя). Выведите сопротивление термистора из измеренного напряжения как:

Rthermistor=(VccVmeasured1)×Rknown

Используйте уравнение:

Tзнак равноВLN(рTчасермяsTорр0×е-ВT0)

в вашем случае , B = 4050 и T 0 = ( 273 + 25 ) = 298 . Вставьте эти числа, а также измеренное сопротивление термистора в уравнение и выведите температуру в Кельвинах.р0знак равно10000Взнак равно4050T0знак равно(273+25)знак равно298

Прочитайте эту статью в Википедии для более подробной информации.


1
Да, я должен спросить :) Как вы делаете эти расчеты, используя 8-битный микроконтроллер?
Абдулла Кахраман

2
@abdullahkahraman вы бы использовали комбинацию поисковой таблицы и интерполяции между поисковыми табличными значениями. Скажем, у вас есть 10-битный АЦП; это 1024 возможных значения из АЦП. Вы можете хранить 1024 преобразованных значения в памяти, или вы можете хранить 512 (каждый другой) или 256 (каждый 4-й) и т. Д. В зависимости от памяти. Интерполяция - это большая тема, так же как передискретизация или «полосатость», которую вы можете использовать для повышения точности.
akohlsmith

@AndrewKohlsmith, как передискретизация увеличивает разрешение?
Абдулла Кахраман

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

1
@ thexeno задай новый вопрос.
Ник Т

6


Yзнак равноaИкс+б

введите описание изображения здесь

введите описание изображения здесь

Кривая практически прямая от 0 ° C до 60 ° C, что достаточно для многих применений.

В этом ответе я покажу, как в некоторых случаях вы можете получить почти идеальную (15 ppm) линейную кривую в ограниченной области только с помощью последовательного резистора.

edit
Если у вас нет денег на резистор, вам придется либо использовать уравнение Стейнхарта-Харта, на которое ссылаются Ник и Викачу, либо использовать справочную таблицу и интерполяцию. Недостаток обоих заключается в том, что им нужно больше памяти: Steinhart-Hart содержит логарифм, для которого вам понадобится библиотека с плавающей запятой (я предполагаю, что ваш микроконтроллер не имеет ALU с плавающей запятой). Таблица поиска также требует некоторой памяти и может не дать вам большей точности, чем линеаризованная функция, если вам придется ее интерполировать.


Не линеаризуйте, если вы не используете аналоговые схемы!
Джейсон С

И, пожалуйста, отредактируйте свой пост для точности: отношения не становятся простым линейным уравнением. Соотношение аппроксимирует линейное уравнение в определенном диапазоне температур.
Джейсон С

4
Джейсон: можешь уточнить? Почему бы не линеаризовать в цифровых цепях?
Стивен Коллингс

Примечание приложения говорит, что эта конфигурация немного пострадает от чувствительности.
Абдулла Кахраман

2
@abdullah - я имел в виду это по иронии судьбы :-). Но очевидно, что все больше пользователей предпочитают более сложную ситуацию, и я не против, но единственная причина, по которой я могу отказаться от более простого решения, заключается в том, что резистор будет слишком дорогим. :-)
stevenvh

4

NTC имеет нелинейный отклик на температуру.

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

Например, допустим, что у вас есть источник питания 5 В, используйте резистор 1 кОм последовательно с NTC, и если вы измеряете 0,5 В, просто разделите 1 кОм на 0,5 В и получите 10 кОм в качестве сопротивления.

Вам также нужно, T0 и ро«фиксированная» температура в Кельвинах, а при этой температуре - ее сопротивление. Это обычно дается при комнатной температуре.

Затем, учитывая эти детали, поместите это в это уравнение, чтобы получить Tтемпературу.

Tзнак равно11Tо+(1В*перрро)


Пожалуйста, подтвердите, что я правильно переписал уравнение.
Абдулла Кахраман

3

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

Краткий ответ примерно таков:

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

Здесь есть ряд тонкостей, поэтому для дальнейшего прочтения вы, возможно, захотите ознакомиться с этой моей статьей о формировании термисторного сигнала - надеюсь, это поможет!


Статья выглядит хорошо!
AndrejaKo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.