В введении к этой серии мы начали работу над тестированием всех различных типов температурных датчиков, создав набор шаблонов проектов: один для аналоговых датчиков и один для цифровых датчиков. Вы можете найти эти шаблоны и реализации датчиков для этих NTC термисторов на GitHub. Как всегда, эти проекты являются открытым исходным кодом и выпущены под лицензией MIT, что позволяет вам использовать их с очень небольшим количеством ограничений.
В этой статье мы начнем с нашего первого типа температурного датчика, термистора с отрицательным температурным коэффициентом (NTC). Термисторы NTC, вероятно, являются самым широко используемым классом температурных датчиков, поскольку они дешевы, просты в использовании и, несмотря на то, что не обладают невероятной точностью, достаточно точны для большинства приложений.
Если вы хотите приобрести термисторы NTC, перейдите на Octopart и посмотрите, что есть в наличии у вашего любимого дистрибьютора. Вы также можете найти полный ассортимент термисторов NTC и многие десятки тысяч других компонентов и датчиков в моей библиотеке Celestial Altium Library, самой большой открытой библиотеке для Altium Designer®.
В этой серии мы собираемся рассмотреть широкий спектр датчиков температуры, обсудить их преимущества и недостатки, а также распространенные способы их реализации. В серии будут рассмотрены:
Несмотря на то, что я только что сказал о том, что термисторы не особенно точны, они широко используются. Для большинства приложений достаточно точности температуры в несколько градусов Цельсия. При создании базовой тепловой защиты или температурной компенсации достаточно термисторов PTC или NTC. Большинство 3D-принтеров используют термисторы для своих нагревательных платформ и горячих концов, поэтому вам нужно калибровать настройки температуры филамента для каждого принтера. Для меня, печатая один и тот же материал с тремя разными горячими концами, у меня есть три температуры в диапазоне почти 10 °C. Датчики температуры PTC или NTC очень дешевы в использовании, что фантастически подходит для недорогих устройств, особенно там, где можно либо калибровать датчик в схеме во время производства, либо это может сделать пользователь.
Стоимость термисторов компенсируется дополнительными инженерными усилиями для получения точного измерения температуры, особенно в широком диапазоне температур. Это делает их очень подходящими для применений защиты, где приемлемо общее представление о температуре. Большинство литий-ионных аккумуляторных батарей используют 10к NTC термистор для отключения зарядки, если элементы слишком сильно нагреваются, чтобы предотвратить катастрофический отказ.
Термистор NTC - это резистор, сопротивление которого снижается по мере увеличения температуры. Это позволяет использовать типичные методы измерения сопротивления в цепи для расчета температуры резистора. К сожалению, изменение температуры нелинейно, что означает, что вы не можете напрямую измерить изменение температуры по изменению сопротивления. Многие производители предоставляют кривую сопротивления-температуры и, возможно, даже формулу для расчета температуры по сопротивлению, что означает, что микроконтроллер может быть использован для получения достаточно точного измерения. Предположим, производитель не предоставляет эту информацию. В этом случае вы можете использовать точный температурный датчик или камеру окружающей среды для измерения датчика в определенных установленных точках, чтобы определить формулу самостоятельно.
В этом проекте мы рассмотрим два разных NTC термистора и несколько вариантов их использования. Это термисторы с узким допуском, но они все же не слишком дорогие по сравнению с другими термисторами с более низким допуском.
Оба эти компонента предназначены для поверхностного монтажа; однако, компоненты для сквозного монтажа также широко доступны. Распространенное применение компонентов для сквозного монтажа - пайка их на концы пары проводов для удаленного измерения. Если вы хотите протестировать термистор на проводе, не тратя много денег, поищите датчики температуры для 3D-принтеров, обычно это будет 10K термистор. Однако, некоторые принтеры используют 100K термисторы.
Часть |
NCP03WF104F05RL |
NCP15XH103F03RC |
Мин. температура измерения |
-40°C |
-40°C |
Макс. температура измерения |
+125°C |
+125°C |
Диапазон измерения |
Локальный |
Локальный |
Сопротивление при 25°C |
100 кОм |
10 кОм |
Допуск сопротивления |
1% |
1% |
Допуск значения B |
1% |
1% |
Рабочая температура |
-40 °C до +125 °C |
-40 °C до +125 °C |
B0/50 |
- |
- |
B15/75 |
4250K |
3380K |
B25/75 |
- |
- |
B25/85 |
4311K |
3434K |
B25/100 |
4334K |
3455K |
Максимальная мощность (мВт) |
100 мВт |
100 мВт |
Производитель |
Murata |
Murata |
Корпус |
0201 |
0402 |
Диапазон температур сенсорного восприятия термисторов является преимуществом по сравнению с некоторыми другими датчиками, которые мы рассмотрим позже. Диапазон сенсорного восприятия покрывает полный рабочий диапазон датчика, что позволяет использовать его в широком спектре приложений. Поскольку термисторы настолько просты, вы можете использовать их и за пределами этих номинальных диапазонов, до тех пор пока ваша пайка не превратится в расплавленное состояние, или термическая усадка не повредит устройство.
Основное отличие между двумя датчиками, помимо размера корпуса, заключается в сопротивлении при 25 °C - у нас есть 100k и 10k NTC термисторы, которые являются наиболее часто используемыми значениями.
Данные листы для этих двух датчиков выглядят довольно линейно, пока вы не поймете, что ось сопротивления логарифмическая. На линейной шкале, как на графике ниже, мы видим, что сопротивление далеко не линейно при прямом считывании.
Мы можем установить резистор, сопротивление которого соответствует сопротивлению термистора в центре интересующего нас диапазона температур, параллельно с термистором, чтобы сделать небольшой участок кривой более линейным. Это может упростить расчет и калибровку в линейной температурной области. Предположим, у вас есть возможность измерить полный профиль термистора для расчета значений формулы термистора, или производитель любезно предоставил их в техническом описании. В этом случае вы можете сэкономить на резисторе и все же получить точное измерение на полном диапазоне.
Самый простой способ измерения температуры - использование делителя напряжения. Вы можете использовать термистор как верхнюю, так и нижнюю ногу потенциального делителя. Если использовать термистор как «верхнюю» ногу потенциального делителя, напряжение будет увеличиваться по мере повышения температуры. Если использовать термистор как нижнюю ногу делителя напряжения, то напряжение будет уменьшаться по мере повышения температуры.
Любой из методов является допустимым. Однако, я бы предложил попытаться уменьшить ток через делитель, чтобы предотвратить самонагревание термистора. В зависимости от значения вашего NTC термистора и требований, вы можете оптимизировать реализацию, изменив топологию.
Для моей реализации я использую простой делитель, который не оптимизирован для какого-либо конкретного температурного диапазона, используя верхний делитель, который соответствует сопротивлению термистора при 25 °C. При 25 °C мы должны ожидать половину входного напряжения. Предположим, вы строите температурный датчик таким образом. В этом случае, вам следует понимать рабочий температурный диапазон и оптимизировать сопротивление и топологию, чтобы обеспечить максимально широкий диапазон напряжений для более точного измерения температуры.
Обратите внимание, что по мере повышения температуры сопротивление NTC термистора будет уменьшаться. Это означает, что большая часть мощности будет рассеиваться на опорном резисторе, поскольку он имеет большее падение напряжения. Это также помогает предотвратить самонагревание и является хорошей стратегией, если мы хотим измерять температуры выше окружающей среды.
Для создания печатной платы мы собираемся использовать шаблон проекта карты датчика температуры, который мы создали в предыдущей статье серии. Шаблон также доступен на GitHub, если вы хотите использовать его для своих сенсоров.
Одна из вещей, которую вы могли заметить, это то, что названия плат такие же, как в шаблоне проекта. Это не облегчит управление, возможно, десятками этих плат, если у всех них будут одинаковые имена схем и файлов печатной платы!
Я спросил своего друга Davide Bortolami, не знает ли он способа переименовать файлы в проекте Altium, поскольку моя практика заключалась в том, чтобы удалять файл из проекта, переименовывать его, а затем добавлять обратно в проект. Мой способ был довольно неуклюжим, поэтому Davide сразу предложил использовать Менеджер Хранения для переименования файлов. Менеджер хранения можно найти под кнопкой панелей в нижнем правом углу Altium.
Менеджер хранения работает прекрасно, даже если ваш текущий проект не находится в репозитории контроля версий. Все, что нам нужно сделать, это щелкнуть правой кнопкой мыши по схеме или печатной плате и выбрать Переименовать (или нажать F2).
Это гораздо более элегантное решение, чем метод, который я обычно использовал бы.
Затем мы добавляем одну из реализаций, описанных выше, на схематический лист. Единственное, что нужно изменить в шаблонных разделах схемы, это подключить аналоговый выход датчика к краевому разъему.
Поскольку эти схемы однополярные, а не дифференциальные, мы можем подключить отрицательную сторону пары к земле, а к положительной стороне подключить выход с делителя напряжения. Затем все, что нам нужно сделать, это обновить плату, добавив новые компоненты.
Работая над платой, я также заполняю таблицу аналоговых каналов, которую мы разместили в шаблоне, чтобы определить, какой канал использует конкретная карта датчика. Это должно уменьшить вероятность добавления двух датчиков, использующих один и тот же канал, в один стек.
Платы для них, конечно, невероятно просты, с добавлением всего двух компонентов на плату. Я мог бы разместить оба датчика на одной плате, но я хочу оставить по одному датчику на плату. Сохраняя каждую реализацию датчика изолированной на своей собственной печатной плате, ни один датчик не будет влиять на результаты другого, поскольку они разделяют плату.
Плата с термистором NTC 100k по сути идентична другим, за исключением компонентов резистора и термистора. Шаблон проекта облегчает создание серии очень похожих печатных плат.
Как упоминалось выше, мы можем добавить резистор параллельно термистору NTC в нашем делителе напряжения. Это поможет линеаризовать участок делителя напряжения. Наличие линейного выхода для интересующего диапазона температур может быть полезным, если вы не можете запустить алгоритм на собранных данных для преобразования значения в точную температуру. Это также может быть полезно, если у вас нет возможности точно собрать необходимые данные для определения значений для алгоритма. Для линейного участка диапазона температур потребуется измерение напряжения, которое можно интерпретировать как дифференциальную температуру напрямую.
Для этой реализации я просто добавляю параллельный резистор, который будет линеаризовать термистор вокруг 25 °C. Ваша реализация должна соответствовать сопротивлению термистора NTC в центральной точке диапазона температур, который вы пытаетесь измерить.
Я разместил два резистора на 10К 0603 вместе для этой реализации, так как не ожидаю, что будет какая-либо заметная разница в физическом положении параллельного резистора по отношению к термистору. Если бы у нас были достаточно точные приборы, мы, вероятно, могли бы обнаружить некоторое тепло от параллельного резистора, нагревающего термистор, если бы они находились рядом. Тем не менее, это было бы такое незначительное количество, что оно не имело бы никакого значения для любого реального применения.
Для повышения стабильности схемы мы также можем использовать операционный усилитель в качестве повторителя напряжения. Это также может дать нам немного дополнительной точности в зависимости от того, как реализован вывод, измеряющий напряжение. Микроконтроллер или специализированный АЦП будут иметь некоторое сопротивление к земле, которое обычно очень высоко, но оно все равно будет действовать как параллельный резистор к нашему делителю напряжения. Используя буфер/повторитель напряжения на операционном усилителе, мы можем изолировать вывод микроконтроллера от делителя напряжения.
Я использую относительно недорогой буферный усилитель для этой схемы. Инструментальный усилитель стоил бы примерно столько же. Стоит отметить, что некоторые аналоговые и цифровые датчики, которые мы рассмотрим позже в серии, стоят дешевле, чем просто буферный усилитель, и имеют большую точность и линейность, чем термисторы PTC или NTC. Так что, хотя эта схема должна обеспечить более точные показания, вероятно, это не имело бы большого смысла в реальной реализации устройства, если только вы не считываете термистор с внешнего устройства/механизма, где вы не можете изменить элемент датчика.
Вы также можете использовать универсальный операционный усилитель для этого, с уменьшенной стоимостью. Буферные усилители имеют коэффициент усиления один, поэтому обратная связь не требуется - и что более важно, имеют исключительно высокое входное и выходное сопротивление. Это высокое сопротивление по сравнению с обычным операционным усилителем обеспечивает большую точность при считывании делителя напряжения, как в данном случае. Тем не менее, буферный усилитель, как этот, является слишком избыточным для термистора NTC, так как он более чем способен обрабатывать сигналы в диапазоне ГГц.
Печатная плата для реализации повторителя напряжения следует общему стилю остальных, с буферным усилителем и делительным резистором на противоположной стороне теплового разрыва. Опять же, я не ожидаю, что от буферного усилителя будет какое-либо заметное тепло, передаваемое на термистор, если они будут размещены вместе. Этот дизайн продолжает тему размещения только элемента датчика внутри зоны теплового разрыва, так что все наши измерения будут последовательными и не будут искажены из-за близости других компонентов.
Вы также можете использовать мост Уитстона для ещё более точного измерения термистора. Однако я не собираюсь реализовывать его для NTC термистора в этой серии. В статье о детекторе температуры сопротивления (RTD) вы найдете больше информации о реализации моста Уитстона. Хотя термистор, правильно реализованный и используемый с правильной формулой, может быть довольно точным, использование моста Уитстона на относительно неточном датчике не стоит затраченного времени и стоимости. Результаты из простых приложений выше позволят вам максимально использовать NTC термистор как датчик температуры.
Эти тестовые карты датчиков являются открытыми, проверьте репозиторий на GitHub, чтобы скачать дизайны и использовать их самостоятельно. Если вы ищете возможность оценить некоторые NTC термисторы, файлы проектов для этих плат сэкономят вам время. Вы также найдете все карты датчиков, которые мы разрабатываем в рамках этой серии, в том же репозитории GitHub, так что вы можете увидеть предварительный просмотр того, что будет дальше в серии, проверив репозиторий!
Хотите узнать больше о том, как Altium может помочь вам с вашим следующим дизайном печатной платы? Все еще интересуетесь, что такое NTC термистор? Обратитесь к эксперту в Altium.