Rich--house.ru

Строительный журнал Rich—house.ru
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Измерение температуры при помощи NTC термистора и микроконтроллера AVR

Термистор

Необходимые знания: Andurite moodul, LCD moodul, Pingejagur,
Analoog-digitaalmuundur, Analoog-digitaalmuundur, Alfabeetiline LCD,
Andurid

Теория

Термистор – это резистор, сопротивление которого меняется от температуры. Термисторы бывают двух типов: с положительным и отрицательным температурным коэффициентом. У терморезистора с положительным коэффициентом при повышении температуры сопротивление возрастает, а с отрицательным коэффициентом — уменьшается. Их сокращённые названия на английском языке: PTC (positive temperature coefficient) и NTC (negative temperature coefficient).

Использование термистора усложняет нелинеарность температурной зависимости его сопротивления. Зависимость является линеарной только в маленьких пределах, для вычисления нескольких десятков градусов и большей границы измерения подходит экспоненциальное уравнение третьего порядка Стейнхарта-Харта. Для NTC терморезисторов существует следующее упрощенное уравнение с B – параметром:

B – параметр это коэффициент, который обычно дается в спецификации термистора. В то же время, он достаточно постоянен только в известных температурных промежутках, к примеру, 25–50 °C или 25–85 °C. Если измеряемый температурный промежуток больше, то при возможности следует использовать уравнение, находящееся в спецификации.

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

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

Практика

Плата модуля «Датчики» Домашней Лаборатории снабжена термистором типа NTC с номинальным сопротивлением 10 kΩ. При температуре 25-50 °C B – параметр равен 3900. Один вывод термистора подключен к питанию +5 V и другой к каналу 2 (вывод PF2) аналогово-дигитального преобразователя микроконтроллера. С тем же выводом микроконтроллера и землей соединен обычный 10 kΩ резистор, который вместе с терморезистором образует делитель напряжения. Так как имеется дело с NTC термистором, сопротивление которого уменьшается с повышением температуры, тогда в это же время поднимается и выходное напряжение делителя напряжения.

Для поиска температуры целесообразно использовать таблицу преобразования значений температуры и аналого-дигитального преобразователя. Разумно для каждого градуса найти соответствующее значение аналого-дигитального преобразователя из желаемого интервала температур, потому что противоположная таблица будет слишком большой из-за количества 10-битных ADC значений. Для создания таблицы желательно использовать какую-либо программу по вычислению таблиц (MS Excel, Openoffice Calc или другие). При помощи приведенного выше уравнения Стейнхарта-Харта, адаптированного для NTC термисторов, можно найти соответствующее температуре сопротивление терморезистора. Из сопротивления можно вычислить выходное напряжение делителя напряжения и в свою очередь из него — значение ADC. Найденные значения можно следующим образом записать в программу:

Для того, чтобы в таблице найти температуру по значению ADC , можно использовать следующий алгоритм:

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

Приведенные таблица перевода и функция уже имеются в библиотеке Домашней Лаборатории, так что в данном упражнении их самим писать не надо. У функции преобразования в библиотеке есть название thermistor_calculate_celsius. Нужно учитывать, что преобразовании подходит только термистору, находящемуся в модуле «Датчики» Домашней Лаборатории. Для использования других термисторов придется создавать таблицу переводов самому и использовать сложные функции, описанные в инструкции библиотеки. В упражнении для примера программы есть термометр, который измеряет температуру в Цельсиях и отображает это на буквенно-цифровом LCD экране.

Термистор и Arduino

Термистор (терморезистор) — это резистор, который меняет свое сопротивление с изменением температуры.

Технически все резисторы являются термисторами, так как их сопротивление меняется в зависимости от температуры. Но эти изменения очень незначительны и измерить их очень сложно. Термисторы изготавливаются таким образом, чтобы сопротивление изменялось на значительную величину в зависимости от температуры. Около 100 Ом и даже больше при изменении температуры на 1 градус по Цельсию!

Существуют два вида термисторов — с NTC (negative temperature coefficient — отрицательный температурный коэффициент) и с PTC (positive temperature coefficient — положительный температурный коэффициент). В большинстве случаев для измерения температуры используются NTC сенсоры. PTC часто используются в качестве предохранителей — с увеличением температуры растет сопротивление, это приводит к тому, что через них проходит большая сила тока, они нагреваются и срабатывают как предохранители. Достаточно удобно для предохранительных цепей!

Если сравнивать термисторы с аналоговыми датчиками температуры типа LM35, TMP36, цифровыми вроде DS18B20, или термопарами, основными преимуществами термисторов можно назвать:

  • Во первых, они гораздо дешевле чем все перечисленные выше датчики температуры!
  • Их гораздо проще использовать в условиях повышенной влажности, так как это просто резистор.
  • Термисторы работают с любым напряжением (цифровые датчики требуют 3 или 5 В питания логики).
  • Если сравнить термистор и термопару, то первым не нужен усилитель сигнала, чтобы считывать данные. Соответственно, вы можете использовать практически любой микроконтроллер.
  • Соотношение точность показаний/цена — потрясающие. Например, термистор 10 КОм 1% может производить измерения температуры с точностью ±0.25°C! (При условии, что у вас подходящий аналогово-цифровой преобразователь на микроконтроллере).
  • Их практически невозможно поломать или повредить.

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

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

Технические характеристики

Ниже приведены технические характеристики термисторов, которые чаще всего используются в DIY проектах на Arduino:

  • Сопротивление при 25 °C: 10K ±1%.
  • B25/50: 3950 ±1%.
  • Диапазон измеряемых температур от -55°C до 125°C.
  • Диаметр: 3.5 мм / 0.13 дюйма.
  • Длина: 18 дюймов / 45 см.
  • Зависимость сопротивления от температуры.

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

Тестируем термистор

Так как термисторы — по своей сути — резисторы , проверить их не составит труда. Достаточно измерить сопротивление с помощью мультиметра:

При комнатной температуре показания должны составить около 10 КОм. Например, показания при 30°C — 86°F, составляют около 8 КОм.

Подключение термистора к Arduino

Термисторы подключаются к Arduino очень просто. Достаточно использовать монтажную плату, как это показано на рисунке ниже. Так как сопротивление термистора достаточно высокое (около 10 КОм), сопротивление проводников практически не повлияет на результаты измерений.

Методика считывания аналогового напряжения

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

Скажем, мы используем резистор с постоянным номиналом 10K и переменный резистор, который называется R. При этом напряжение на выходе (Vo), которое мы будем передавать Arduino, будет равно:

Vo = R / (R + 10K) * Vcc,

где Vcc — это напряжение источника питания (3.3 В или 5 В)

Теперь мы хотим подключить все это к Arduino. Не забывайте, что когда вы измеряете напряжение (Vi) с использованием АЦП на Arduino, вы получите числовое значение.

ADC value = Vi * 1023 / Vcc

Теперь мы совмещаем два напряжения (Vo = Vi) и получаем:

ADC value = R / (R + 10K) * Vcc * 1023 / Vcc

Что самое прекрасное, Vcc сокращается!

ADC value = R / (R + 10K) * 1023

То есть вам неважно, какое напряжение питания вы используете!

В конце мы все же хотим получить R (сопротивление). Для этого надо использовать еще одно преобразование, в котором R переносятся в одну сторону:

R = 10K / (1023/ADC — 1)

Отлично. Давайте попробуем, что из этого всего выйдет. Подключите термистор к Arduino как это показано на рисунке ниже:

Подключите один контакт резистора на 10 КОм к контакту 5 В, второй контакт резистора 10 КОм 1% — к одному контакту термистора. Второй контакт термистора подключается к земле. ‘Центр’ двух резисторов подключите к контакту Analog 0 на Arduino.

Теперь запустите следующий скетч для Arduino:

// значение ‘другого’ резистора

#define SERIESRESISTOR 10000

// к какому пину подключается термистор

#define THERMISTORPIN A0

// преобразуем полученные значения в сопротивление

reading = (1023 / reading) — 1;

reading = SERIESRESISTOR / reading;

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

Более точные измерения

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

Первое. Питание 5 В от Arduino подается напрямую от USB вашего персонального компьютера. В результате сигнал гораздо более зашумленный, чем питание от контакта 3.3 В (этот контакт предусматривает предварительную обработку через интегрированный в плату регулятор). То есть просто подключите 3.3 к контакту AREF и используйте его в качестве источника напряжения VCC.

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

В результате схема подключения и новый скетч для Arduino будут имеет следующий вид:

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

// к какому аналоговому контакту мы подключены

#define THERMISTORPIN A0

// сколько показаний берется для определения среднего значения

// чем больше значений, тем дольше проводится калибровка,

// но и показания будут более точными

#define NUMSAMPLES 5

// емкость второго резистора в цепи

#define SERIESRESISTOR 10000

// подключите AREF к 3.3 В и используйте именно этот контакт для питания,

// так как он не так сильно «шумит»

// формируем вектор из N значений с небольшой задержкой между считыванием данных

Температурные датчики. Терморезисторы в схемах на МК

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

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

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

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

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

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

Читать еще:  Как устроен нутромер индикаторный и как им пользоваться?

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

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

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

«NTC» (фирма EPCOS)

В термисторах РТС-типа или, по-другому, позисторах (англ. РТС — 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 и без линеаризации характеристики;

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

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

Измеряем температуру c помощью термистора

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

Рисунок 1.График зависимости сопротивления от температуры
для NTC термистора компании Panasonic.

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

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

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

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

Рисунок 2.Схема линеаризации характеристики
NTC термистора.

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

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

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

Рисунок 3.График зависимости коэффициента деления от
температуры при различных значениях

сопротивления смещения.

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

Рисунок 4.Относительные ошибки для различных сопротивлений
резисторов смещения.

В этом примере линейное выражение для зависимости температуры от коэффициента сопротивлений при номинале резистора смещения 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. Инфракрасные датчики. Чаще всего их используют для измерения тепловых излучений, уровни которых затем преобразуют в температуру.
Читать еще:  Схема подключения кнопки перфоратора макита hr2450

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

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

Перевод: Mikhail R по заказу РадиоЛоцман

Ардуино: терморезистор NTC 100K

Терморезистор (или термистор) — это такой резистор, который меняет свое электрическое сопротивление в зависимости от температуры.

Существует два вида термисторов: PTC — с положительным температурным коэффициентом, и NTC — с отрицательным. Положительный коэффициент означает, что с повышением температуры сопротивление термистора растёт. NTC-термистор ведет себя противоположным способом.

Также термисторы отличаются номинальным сопротивлением, которое соответствует комнатной температуре — 25 C°. Например, популярными являются термисторы с номиналом 100 кОм и 10 кОм. Такие термисторы часто используют в 3D-принтерах.

В этом уроке мы будет использовать термистор NTC 100K в стеклянном корпусе. Вот такой:

Подключение термистора к Ардуино

Чтобы измерить сопротивление термистора, подключим его в качестве нижнего плеча делителя напряжения. Среднюю же точку делителя подключим к аналоговому входу Ардуино — A0. Подобный способ использовался в уроке про фоторезистор.

Подробно об аналоговых входах Ардуино мы говорили на уроке: Аналого-цифровые преобразования — АЦП

Принципиальная схема

Внешний вид макета

Какое сопротивление должен иметь резистор в верхнем плече делителя? Как правило, используют резистор с сопротивлением, совпадающим по порядку с номиналом термистора. В нашем уроке мы используем резистор на R1 = 102 кОм, его легко получить последовательным соединением двух резисторов на 51 кОм.

Программа для вычисления сопротивления термистора

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

Результат работы программы:

Можно заметить, что измеренное сопротивление термистора меньше 100 кОм, значит температура окружающей среды ниже 25 C°. Следующий шаг — вычисление температуры в градусах Цельсия.

Программа для вычисления температуры на термисторе

Чтобы вычислить значение температуры используют формулу Стейнхарта — Харта:

Уравнение имеет параметры A,B и C, которые нужно брать из спецификации к датчику. Так как нам не требуется большой точности, можно воспользоваться модифицированным уравнением (B-уравнение):

В этом уравнении неизвестным остается только параметр B, который для NTC термистора равен 3950. Остальные параметры нам уже известны:

  • T0 — комнатная температура в Кельвинах, для которой указывается номинал термистора; T0 = 25 + 273.15;
  • T — искомая температура, в Кельвинах;
  • R — измеренное сопротивление термистора в Омах;
  • R0 — номинальное сопротивление термистора в Омах.

Модифицируем программу для Ардуино, добавив расчет температуры:

Уже лучше! Программа показывает нам температуру в градусах Цельсия. Как и ожидалось, она немного ниже 25 C°.

Мир микроконтроллеров

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих — 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 — 71
  • Двухканальный термостат, терморегулятор на ATmega8 — 67

Измерение температуры с помощью терморезистора и Arduino

Использование терморезистора (термистора) – один из самых простых и дешевых способов измерения температуры. Для точного измерения температуры с помощью терморезистора необходим микроконтроллер, в качестве которого в нашем проекте мы будем использовать плату Arduino. Измеренное значение температуры будет отображаться на экране ЖК дисплея. Подобная схема может найти применение в удаленных метеорологических станциях, проектах автоматизации (умного) дома, управления электронным и промышленным оборудованием.

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

  1. Плата Arduino (любая модель).
  2. NTC thermistor 10 кОм (терморезистор с отрицательным температурным коэффициентом).
  3. Резистор 10 кОм.
  4. Соединительные провода.

Работа схемы

Схема устройства представлена на следующем рисунке.

При изменении температуры изменяется сопротивление терморезистора (термистора). Но в нашей схеме мы не будем измерять сопротивление термистора напрямую, вместо этого мы использовали делитель напряжения, одним из резисторов которого является известное сопротивление 10 кОм, а вторым – наш терморезистор. Средняя точка делителя напряжения подключена к аналоговому входу A0 платы Arduino, поэтому при помощи аналогово-цифрового преобразования (АЦП) на этом контакте мы можем определить падение напряжение на терморезисторе в любой момент времени и, следовательно, и его сопротивление. Благодаря этим данным мы по формулам, приведенным ниже в данной статье, можем определить значение температуры.

Терморезистор

Ключевым компонентом нашей схемы является терморезистор, который используется для определения температуры. Термистор представляет собой резистор, сопротивление которого изменяется в зависимости от температуры. Существует два типа подобных термисторов: NTC (Negative Temperature Co-efficient — с отрицательным температурным коэффициентом) и PTC (Positive Temperature Co-efficient — с положительным температурным коэффициентом). Мы в нашем проекте будем использовать терморезистор NTC типа – его сопротивление уменьшается с повышением температуры. На следующих рисунках приведены график зависимости сопротивления подобного терморезистора от температуры и его типовой внешний вид.

Расчет температуры с помощью терморезистора

Схема используемого нами делителя напряжения представлена на следующем рисунке.

Напряжение на терморезисторе в этой схеме можно определить из известного напряжения:

Из этой формулы можно выразить значение сопротивления терморезистора Rt (R – известное сопротивление 10 кОм):

Значение Vout мы затем будем определять в коде программы с помощью считывания значения на выходе АЦП на контакте A0 платы Arduino.

Математически, сопротивление терморезистора можно вычислить с помощью известного уравнения Стейнхарта-Харта (Stein-Hart equation).

T = 1/(A + B*ln(Rt) + C*ln(Rt) 3 ) .

В этой формуле A, B и C — константы, Rt – сопротивление терморезистора, ln — натуральный логарифм.

Мы для проекта использовали терморезистор со следующими константами: A = 1.009249522×10 −3 , B = 2.378405444×10 −4 , C = 2.019202697×10 −7 . Эти константы можно определить с помощью данного калькулятора, введя в нем значения сопротивления терморезистора при трех значениях температуры или вы их можете непосредственно узнать из даташита на ваш терморезистор.

Таким образом, для определения значения температуры нам будет нужно только значение сопротивления терморезистора – после его определения мы просто подставляем его значение в уравнение Стейнхарта-Харта и с его помощью рассчитываем значением температуры в кельвинах. Алгоритм определения температуры в нашем проекте представлен на следующем рисунке.

Исходный код программы

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

Для выполнения математических операций в программе мы должны подключить заголовочный файл библиотеки “ #include >”, а для работы с ЖК дисплеем – подключить библиотеку “ #include
«. Далее в функции setup() мы должны инициализировать ЖК дисплей.

Измерение температуры с помощью термистора ntc — Проектов — 2020

Методы измерения температуры. Термометры . (Октябрь 2020).

Измеряемая температура с термистором NTC

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

Вы когда-нибудь задумывались о том, как некоторые устройства, такие как термостаты, термопластиковые печатные машины, автомобильные двигатели или печи, измеряют температуру? «Src =» // www.allaboutcircuits.com/uploads/articles/Corleto_thermistor3.jpg «/>

Терморезистор. Изображение предоставлено Thorlabs.

аппаратные средства

  • Arduino
    • MEGA или Uno или ваш любимый аромат Arduino
  • Некоторые перемычки
  • Припой и паяльник (возможно, если ваш термистор не подходит к заголовкам Arduino)

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

теория

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

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

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

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

В оставшейся части статьи вы можете предположить, что мы будем ссылаться на термисторы типа NTC.

Четыре подхода к поиску формулы соответствия кривой

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

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

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

Подход:

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

Но тогда вы думаете, как вы это сделаете в Arduino. Вам нужно будет жестко закодировать все эти значения в коде в огромной таблице поиска или в очень длинных структурах «switch … case» или «if … then».

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

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

Подход два:

Вы можете попытаться «линеаризовать» ответ от термистора, добавив к нему внешние схемы.

Популярным способом сделать это является подключение резистора параллельно с термистором. Некоторые ИС предлагают сделать это за вас.

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

Но у нас есть микропроцессор в этой статье и мы хотим использовать весь диапазон.

Подход три:

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

Хотя это законный подход, мы не хотим зацикливаться на анализе всех этих данных. Кроме того, каждый термистор немного отличается (но, конечно, это не проблема, если допуск довольно низкий).

Читать еще:  3Б161 станок круглошлифовальный универсальный полуавтоматСхемы, описание, характеристики
Подход четыре:

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

$$ гидроразрыва <1>= А + В п (R) + С ( п (R)) ^ 3 $$

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

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

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

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

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

$$ гидроразрыва <1>= гидроразрыва <1> + ( гидроразрыва <1>< бета>) CDOT пер влево ( гидроразрыва , справа) $ $

где R o — сопротивление при контрольной температуре T o (например, сопротивление при комнатной температуре). β обычно указывается в таблице данных, а если нет, вам нужно только одно измерение (одно уравнение) для вычисления для него. Это уравнение, которое я буду использовать для нашего интерфейса термистора, поскольку он довольно прост в кодировании и является самым простым, с которым я столкнулся, не требуя линеаризации реакции термистора.

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

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

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

Теперь, как правило, мы используем делитель напряжения с приведенным ниже уравнением:

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

Это почти идеально, но нам нужно теперь измерить напряжение на выходе, а также напряжение питания. Именно здесь мы хорошо используем встроенный ADC Arduino. (Если вы не знакомы с этой концепцией, обратитесь к статье учебника ААС по АЦП для получения некоторой справочной информации.)

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

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

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

Уф! Вперед к его созданию!

Проводка

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

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

Ниже приведена полная схема. На самом деле это довольно легко и просто!

Нажмите, чтобы увеличить.

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

Код Arduino

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

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

Для удовольствия есть также некоторые «если … тогда», чтобы показать, как вы можете воздействовать на диапазон температур и единую точку данных.

Как всегда, комментарий ниже для вопросов! Или пощелкайте это на форуме для подробных ответов — все там очень дружелюбны и помогут вам в любой проблеме (в рамках правил форума).

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

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

  • Поместите небольшой конденсатор параллельно выходному напряжению. Это стабилизировало бы напряжение и могло бы даже исключить необходимость усреднения многих образцов (как в коде), или, по крайней мере, вы могли бы усреднить меньшее количество выборок.
  • Используйте прецизионные резисторы (более 1%) для более последовательного и предсказуемого измерения. Если вам необходимо абсолютное критическое измерение температуры, имейте в виду, что самонагрев термистора может влиять на измерения; этот проект не компенсирует самонагревание.

Конечно, термисторы — это всего лишь один датчик, используемый для измерения температуры. Еще один популярный выбор — использовать температурную ИС, подобную этой (PDF). Таким образом вам никогда не придется заниматься линеаризацией или сложными уравнениями. Два других варианта: термопары и ИК-датчик; последние могут измерять температуру без физического контакта, но они не из дешевых.

Надеюсь, это даст вам представление о том, как измерить температуру для вашего следующего проекта!

Попробуйте этот проект сами! Получить спецификацию.

Урок 12. Измерение температуры при помощи AVR. Простой термометр на AVR.

Продолжаем осваивать периферию, на очереди измерение температуры. Рассмотрим вариант измерения, при помощи датчика температуры DS18b20.

Характеристики датчика: диапазон измерения от -55 до +125°С. Точность измерения ±0,5°С гарантируется в диапазоне от -10 до +85°С. Возможность измерения с разрешением 9, 10, 11 и 12 бит, т.е. с шагом 0,5; 0,25; 0,125; 0,0625°С. Для обмена информацией с AVR микроконтроллером используется 1-Wire протокол. Каждый датчик имеет свой уникальный адрес, поэтому имеется возможность посадить на шину сразу несколько датчиков.

Для сборки схемы понадобится жк дисплей, датчик и резистор на 4,7кОм. Теперь перейдем непосредственно к прошивке.

#include #include // 1 Wire Bus functions #asm .equ __w1_port=0x18 ;PORTB .equ __w1_bit=2 #endasm #include #include // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x12 ;PORTD #endasm #include #include char lcd_buf[17]; void main(void) < float temper; lcd_init(16); w1_init(); ds18b20_init(0,-20,50,DS18B20_12BIT_RES); while(1) < temper=ds18b20_temperature(0); sprintf(lcd_buf,"t=%.1fxdfC",temper); lcd_clear(); lcd_puts(lcd_buf); delay_ms(1500); >; >

Теперь обо всем по порядку:

#asm .equ __w1_port=0x18 ;PORTB .equ __w1_bit=2 #endasm

Данный код означает, что датчик подключен к порту В, PB2 ножке

Используется протокол 1wire, тип датчика ds18b20

float temper; w1_init(); ds18b20_init(0,-20,50,DS18B20_12BIT_RES);

Переменная temper (с плавающей точкой) используется для хранения температуры,
w1_init(); — ищем датчик,
ds18b20_init(0,-20,50,DS18B20_12BIT_RES); — настройка датчика: 0-номер датчика, -20 -нижний предел измерения, 50 — верхний предел измерения,
DS18B20_12BIT_RES используется 12 битный режим(с шагом 0,0625°С). В принципе настройку можно не производить, по умолчанию выставлен 12 битный режим. Показано лишь для того, чтобы вы могли самостоятельно изменить режим измерения, если это понадобится.

temper=ds18b20_temperature(0); sprintf(lcd_buf,»t=%.1fxdfC»,temper); lcd_clear(); lcd_puts(lcd_buf); delay_ms(1500);

temper=ds18b20_temperature(0); — читаем значение температуры с датчика
sprintf(lcd_buf,»t=%.1fxdfC»,temper); преобразовываем к понятному для lcd виду %.1f — вывод числа с плавающей точкой 1 знак после запятой, не забываем в свойствах проекта указать (s)printf features float.
xdf — вывод на экран значка градуса.

В результате должно получиться нечто похожее

Отрицательной температуры поблизости не было :D, поэтому попробовал остудить бутылочкой соуса из холодильника, результат что то не сильно впечатлил.

Зато от нагрева рукой, температура довольно быстро повысилась.

Проект доступен тут
Проект для DS18s20
Проект для двух датчиков
Проект для DS18b20 на семисегментниках
Проект Алексея(Alyes)для Atmega16 и шести сегментов + бонус видео устройства

248 комментариев: Урок 12. Измерение температуры при помощи AVR. Простой термометр на AVR.

Здравствуйте! На семисигментниках собрал термометр с отображением до десятых долей градуса.В протеусе все ОК.В железе при вкл на индикаторе отображается ересь-как будто два итображения чисел вместе накладываются Железо вроде ОК ( с программой на два знака(целые значения температуры) все норм работает!Программу тоже пошагово проверял все нормально. Может кто подскажет в чем дело-писал пропеты и посложнее и все получалось , а тут споткнулся…

это нормально 🙂 попробуйте реже опрашивать для начала.

Здравствуйте Уважаемый Admin! Подскажите пожалуйста как в Codevisionavr 2.05 сделать проект с двумя и более температурными датчиками DS18B20? В конце Вашей статьи есть Проект Алексея(Alyes), выполненный в CVAVR 2.05, но заставить работать его с двумя датчиками никак не могу добиться. Подскажите пожалуйста куда какие стоки нужно добавить?
Спасибо.

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

// 1 Wire Bus interface functions
#include

// DS1820 Temperature Sensor functions
#include

void main(void)
<
// Declare your local variables here
float temper;
unsigned int x;

// 1 Wire Bus initialization
// 1 Wire Data port: PORTD
// 1 Wire Data bit: 7
// Note: 1 Wire port settings must be specified in the
// Project|Configure|C Compiler|Libraries|1 Wire IDE menu.
w1_init();
ds18b20_init(0,-20,50,DS18B20_12BIT_RES);

// Global enable interrupts
#asm(«sei»)

while (1)
<
temper=ds18b20_temperature(0);
if (temper>1000)
<
temper=4096.0-temper;
minus=1;
>

x=temper*10;
nom4=x%10;//разборка целого числа на отдельный сегмент…
x=x/10;
nom3=x%10;
nom2=x/10;
nom5=10;
nom6=11;
if(minus==0)
<
nom1=12;
>
else
<
nom1=13;
>
>
>

Подключение термистора к arduino.

Терморезистор (термистор, термосопротивление) — полупроводниковый прибор, электрическое сопротивление которого изменяется в зависимости от его температуры .

Терморезистор был изобретён Самюэлем Рубеном (Samuel Ruben) в 1930 году .

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

По типу зависимости сопротивления от температуры различают терморезисторы с отрицательным (NTC-термисторы, от слов «Negative Temperature Coefficient») и положительным (PTC-термисторы, от слов «Positive Temperature Coefficient» или позисторы) температурным коэффициентом сопротивления (или ТКС). Для позисторов — с ростом температуры растёт их сопротивление; для NTC-термисторов увеличение температуры приводит к падению их сопротивления.

Условно терморезисторы классифицируют как низкотемпературные (предназначенные для работы при температуpax ниже 170 Кельвин), среднетемпературные (от 170 до 510 К) и высокотемпературные (выше 570 К). Выпускаются терморезисторы, предназначенные для работы при температурах от 900 до 1300 К.

Термисторы бывают разных видов вот например:

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

В данном примере будем использовать простейший NTC термистор c номинальным сопротивлением 100 кОм при температуре 25 градусов “С” который используется в 3Д принтерах. Данный термистор имеет маркирову 3950.

Для реализации нам понадобится:

Схема подключения всех элементов будет выглядеть следующим образом:

Чтобы вычислить значение температуры используют формулу Стейнхарта — Харта:

Уравнение имеет параметры A,B и C, которые нужно брать из спецификации к датчику. Так как нам не требуется большой точности, можно воспользоваться модифицированным уравнением (B-уравнение):

В этом уравнении неизвестным остается только параметр B, который для NTC термистора равен 3950. Остальные параметры нам уже известны:

  • T0 — комнатная температура в Кельвинах, для которой указывается номинал термистора; T0 = 25 + 273.15;
  • T — искомая температура, в Кельвинах;
  • R — измеренное сопротивление термистора в Омах;
  • R0 — номинальное сопротивление термистора в Омах.

Скетч будет выглядеть следующем образом:

Вот что мы увидим в мониторе порта:

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×