Подключение термопары к компьютеру

Обновлено: 03.07.2024

Эта работа была прислана на наш "бессрочный" конкурс статей и автор получил награду – кулер PENTAGRAM FREEZONE QC-80 AlCu и фирменную футболку сайта.

Изучая возможности своей материнской платы, наткнулся на даташит микросхемы мониторинга Winbond W83627THF, которая используется на материнской плате EPOX 8RDA+PRO и на многих других. После его изучения понял, что она поддерживает три датчика температуры, а на моей материнской плате оказалось только два. Почему EPOX не использует полностью возможности этого чипа мне не известно, но я решил попытаться подключить третий термодатчик. И это оказалось несложно. Кому хочется иметь еще один датчик температуры, могут это сделать как я. Для этого потребуется:

  1. СМД терморезистор на 10 кОм (купить мне не удалось, выпаивал с мертвой матери)
  2. СМД резистор на 10 кОм с отклонением от номинала 1-2% (без проблем можно купить в радиомагазине, стоит не более 1руб)
  3. Разъем (я использовал точно такой же, как стоят на материнках для подключения кулеров), но подойдет любой малогабаритный
  4. Тонкий провод, лучше использовать МГТФ или любой другой с наименьшим сечением, который удастся найти
  5. Паяльник и все, что необходимо для пайки (припой, флюс, канифоль).

реклама

Самым сложным, оказалось найти терморезистор, но если есть нерабочая мать, можно выпаять с нее. Обычно там их два: один стоит под процессором, другой недалеко от чипа мониторинга, обозначается на платах как RT.


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

Если все детали найдены можно приступить. Первым делом припаиваем терморезистор к проводам и к разъему (мама), это и будет выносным термодатчиком, должно получиться что то вроде этого:


MSI RTX 3070 сливают дешевле любой другой, это за копейки Дешевая 3070 Gigabyte Gaming - успей пока не началось

Затем предстоит спаять вот такую схемку и подсоединить к материнке:


Для этого припаиваем резистор на 10 кОм к проводам:


Изолируем его термоусадкой:


реклама

Припаиваем к разъему провода (папа):


Припаиваем разъем на мать:


Я припаял его двумя крайними выводами прямо над крепежным отверстием к "земле", а центральный вывод оставался на весу.

Припаиваем провода согласно схеме к чипу W83627THF:


Вот так все вместе выглядит:


Промываем все места пайки спиртом и убеждаемся, что все соединено правильно и ничего не замкнуто. Если все в порядке, можно включать. В БИОСе этот датчик определяться не будет, но софтом он виден. Чтобы убедиться, что его показания правильные, помещаем его рядом с датчиком, который показывает температуру внутри корпуса, и смотрим показания в программе мониторинга, я использовал Everest. У меня разницы в показаниях никакой не оказалось, но вполне возможно, что отклонения будут 1-2 градуса из-за погрешности используемых элементов.

Если у кого-то появится необходимость иметь более точные показания, то при сборке схемы можно вместо R2 припаять подстроечный резистор c номиналом 11-12 кОм, а затем при помощи его откалибровать показания. Подстрочный резистор подойдет любой марки, но обязательно должен быть многооборотным.


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



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

Начнем по порядку.
Термопара… как термопара. Метр ровно, К типа, 0-800C

Можно врезать в корпус, имеется резьбовая часть, которая вращается свободно. Диаметр 5,8мм, шаг — 0,9

1.0мм, похоже М6 x 1,0 мм. Под ключ на 10

Это все хорошо, дальше что делать? Нужно преобразовать сигнал термопары (термоэдс) в цифровой или аналоговый сигнал, чтоб читать ардуиной. В этом нам поможет MAX6675. Это преобразователь сигнала термопары K-типа в цифру, имеет SPI интерфейс, что нас устраивает.
А вот и наш герой — MAX6675ISA ($4.20)

Стоил $4.10, но того лота больше нет (продавец тот же).

Подключать будем к ардуине, можно взять простенькую Arduino Pro Mini ($5.25, можно найти дешевле, здесь Вы видите именно эту)

Данные будем писать на карту памяти (и заодно слать в порт) с помощью SD Card Module $1.25.

Интерфейс, тоже, кстати, SPI. Только не все карточки его поддерживают. Не завелось — попробуйте сначала другую.
В теории все линии SPI устройств (MOSI или SI, MISO или SO, SCLK или SCK), кроме CS (CS или SS — выбор микросхемы), можно подключить к одним контактам ардуины, но тогда MAX6675 работает неадекватно. Поэтому я все разнес по разным пинам.
В основу скетча лег пример по работе с картами памяти с хабра.
Библиотека и скетч для MAX6675 тут. Схема подключения MAX6675:





В сборе:

В работе:

На термопаре относительно много металла, поэтому она «заторможена». Кроме того пришлось значительно погрузить ее в лед, иначе до 0 не остывала

Подключение к ПК необязательно, достаточно подать 5V питания на ардуину. Устройство пишет данные на карточку в CSV и шлет в порт, поэтому можно мониторить состояние в реальном времени.

С 23C до 0C термопара остыла за 50 секунд. Обратно нагрелась за 6 минут.
Собственно, вот эти строки:
1;22.75
48;0.00
410;22.25
Из них понятен формат записи — время в секундах от старта; температура.
Сам файл TEMP.CSV
Да, температура отображается с шагом 0,25. Меня это устраивает.

Если добавить модуль реального времени, устройство станет на порядок круче. Всего $1.79:

Модуль не сильно точный, но для наших целей хватит. Еще можно сделать автономное питание на каком-нибудь UP конвертере. Вот, $1.65:

Еще стоит убрать перезапись файла… Много чего можно сделать. Я просто оставлю все исходники здесь

/*
Схема подключения
* SD:
** MOSI — pin 11
** MISO — pin 12
** CLK — pin 13
** CS — pin 10

* MAX6675:
** MISO — pin 8;
** SCK — pin 7;
** CS — pin 9;

int units = 1; // Units to readout temp (0 = F, 1 = C)
float error = 0.0; // Temperature compensation error
float temp_out = 0.0; // Temperature output varible

void setup()
Serial.begin(9600);
Serial.print(«Initializing SD card. »);

pinMode(10, OUTPUT);
if (!SD.begin(10)) Serial.println(«initialization failed!»);
return;
>
Serial.println(«initialization done.»);

// Проверяем, существует ли на карте файл data.csv, если существует, то удаляем его.
if(SD.exists(«temp.csv»)) SD.remove(«temp.csv»);
>
// открываем файл. заметьте, что только один файл может быть открыт за раз,
// поэтому вы должны закрыть этот, чтобы открыть другой.
myFile = SD.open(«temp.csv», FILE_WRITE); // открыть на запись

temp_out = temp0.read_temp(5); // Read the temp 5 times and return the average value to the var

Термопара – это один из видов температурных датчиков, который может применяться в измерительных устройствах и системах автоматизации. Ей присущи определенные преимущества: дешевизна, высокая точность, широкий по сравнению с термисторами и микросхемами цифровых датчиков температуры диапазон измерения, простота и надежность. Однако выходное напряжение термопары мало и относительно, а схема измерителя на термопаре сложна, так как предъявляются жесткие требования к прецизионному усилению сигнала с термопары и к схеме компенсации. Для разработки таких устройств существуют специализированные микросхемы, интегрирующие схему преобразования и обработки аналогового сигнала. С помощью этих микросхем можно построить достаточно компактный измеритель температуры с термопарой в качестве датчика (Рисунок 1).

Вебинар «Особенности применения литиевых батареек Fanso (EVE) в популярных решениях» (30.11.2021)

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

Принципы

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

Принцип действия основан на эффекте Зеебека или, иначе, термоэлектрическом эффекте. Между соединенными проводниками имеется контактная разность потенциалов. Если стыки связанных в кольцо проводников находятся при одинаковой температуре, сумма таких разностей потенциалов равна нулю. Когда же стыки находятся при разных температурах, разность потенциалов между ними зависит от разности температур. Коэффициент пропорциональности в этой зависимости называют коэффициентом термо-ЭДС. У разных металлов коэффициент термо-ЭДС разный и, соответственно, разность потенциалов, возникающая между концами разных проводников, будет различной. Помещая спай из металлов с отличными коэффициентами термо-ЭДС в среду с температурой Т1, мы получим напряжение между противоположными контактами, находящимися при другой температуре Т2, которое будет пропорционально разности температур Т1 и Т2 (Рисунок 2).

Генерирование термо-ЭДС в термопаре, образованной двумя разнородными проводниками.

Существует несколько типов термопар, в зависимости от используемой пары материалов (чистый металл или сплав). В нашем проекте мы используем термопару K-типа (хромель-алюмель), которая часто применяется в промышленных инструментах и приборах. Выходное напряжение термопары K-типа составляет приблизительно 40 мкВ/°С, следовательно, потребуется схема усиления сигнала с небольшим смещением напряжения по входу.

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

Схема компенсации холодного спая, введение поправки к измеренной термо-ЭДС.

Чтобы получить значение температуры с помощью термопары потребуется аналоговая схема, например прецизионный операционный усилитель и схема компенсации холодного спая. Однако, существует несколько видов специализированных микросхем со встроенным интерфейсом термопары. Эти микросхемы интегрируют указанные выше аналоговые схемы и значительно упрощают проект. В нашем случае мы выбрали микросхему MAX31855 компании Maxim. Она содержит аналоговую схему и аналого-цифровой преобразователь, следовательно, на выходе микросхемы мы получим цифровые данные. Перед покупкой микросхемы необходимо заранее определить тип термопары, которая будет использоваться в устройстве.

Основные характеристики микросхемы MAX31855:

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

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

Принципиальная схема измерителя температуры изображена на Рисунке 5.

Принципиальная схема измерителя температуры на AVR с термопарой

Сердцем прибора является микроконтроллер Atmel AVR ATmega164P. Микросхема MAX31855 подключается к микроконтроллеру по интерфейсу SPI.

В качестве источника питания используется батарея типоразмера LR1 с напряжением 1.5 В. Для питания микроконтроллера и микросхемы интерфейса термопары используется схема повышающего DC/DC преобразователя, выполненного на микросхеме серии XC9111, обеспечивающего выходное напряжение 3.0 В. Микроконтроллер осуществляет управление питанием и отслеживает напряжение батареи.

Так как для питания используется элемент питания 1.5 В, для отображения данных оптимально использовать сегментный статический ЖК индикатор TWV1302W, который применяется в цифровых устройствах измерения температуры (Рисунок 6). Рабочее напряжение этого индикатора 3 В. При использовании индикатора с рабочим напряжением 5 В потребуется дополнительная схема преобразователя напряжения (Рисунок 7). Функции управления индикатором выполняет микроконтроллер. При таком решении потребляемый устройством ток составит 4 мА, а батарея прослужит, как минимум, 100 часов.

Внешний вид символьного ЖК индикатора TWV1302W.

Вариант схемы преобразователя напряжения применяемой в случае использования ЖК индикатора с рабочим напряжением 5 В.

Измеритель температуры совместно с ПК или ноутбуком может использоваться в качестве системы сбора данных. Для этого предусмотрена возможность подключения к последовательному порту RS-232 для передачи данных. Настройки порта: 8 бит данных, 1 стоп-бит, скорость передачи данных 300 бит/с.

В программе микроконтроллера реализуется чтение данных по интерфейсу SPI с интервалом 0.5 сек и отображение измеренного значения на ЖК индикаторе. Управление индикатором осуществляется в фоновом режиме.

Загрузки

Исходный код программы микроконтроллера – скачать
Демонстрационное видео – скачать

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

подключить модуль max6675 к Arduino

Что такое термопар. Характеристики термопары K-типа.

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

Что такое термопар. Характеристики термопары K-типа.

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

Термопары K-типа (хромель – алюмель).

Хромель (Chromel) – это сплав, состоящий на 90% из никеля и на 10% из хрома, а Алюмель (Alumel) – это сплав, содержащий 95% никеля, 2% марганца, 2% алюминия и 1% кремния. Термоэлектрод из сплава Chromel имеет положительный потенциал относительно термоэлектрода из сплава Alumel.

Термопары K-типа

Это недорогие термопары, их диапазон измеряемых температур составляет от -270°C до +1372°C и характеристика относительно линейна. Такие термопары можно использовать в постоянно окислительных или нейтральных средах.

Корпус термопары, который используется в нашем примере, рассчитан на температуру до 600 °C, значит и измерения необходимо производить в диапазоне от 0 до 600 °С.

Описание модуля max6675.

Описание модуля max6675.

Модуль преобразователя MAX6675 поставляется как вместе с термопарой, так и отдельно. Немного расскажу о самом модуле, на котором установлена одна микросхема MAX6675ISA фирмы Maxim Integrated Products конденсатор и пару разъемов. Микросхема имеет 12 битный АЦП, SPI интерфейс и точность микросхемы 0,25°C (это точность самой микросхемы, у термопары точность другая). Если необходима более подробная информация о микросхеме MAX6675, можете воспользоваться документаций, скачать можно внизу статьи.

Характеристики модуля max6675:

  • Тип преобразователя: аналогово-цифровой (АЦП) с компенсацией холодного спая;
  • Разрядность преобразователя: 12 бит;
  • Шаг измерения: 0,25°C;
  • Точность: 1,5°C;
  • Интерфейс подключения к контроллеру: SPI;
  • Напряжение питания: 3 – 5,5 В постоянного тока;
  • Габариты модуля: 32 x 15 x 14 мм;
  • Тип термопары: К (хромель-алюмелевая);
  • Диапазон измеряемой температуры: 0 – +600°С;
  • Диаметр резьбы термопары: 6 мм;
  • Длина резьбы термопары: 13 мм;
  • Длина кабеля термопары: 50 см;
  • Вес комплекта: 25 г.

Для подключения модуля MAX6675 к микроконтроллеру используется интерфейс SPI, для этого на модуле выведен пяти контактный разъем, назначение каждого вывода приведено ниже.

Назначение контактов:

  • GND – «-» , питание модуля;
  • VCC – «+», питание модуля;
  • SCK –тактовые импульсы;
  • CS – вывод интерфейс SPI;
  • SO – вывод интерфейс SPI.

MAX6675 подключение к Arduino.

Для урока понадобится:

Схема подключения MAX6675 к Arduino UNO.

Схема подключения MAX6675 к Arduino UNO.

Подключаем питание, выводы VCC и GND (модуля MAX6675) подключаем к выводам +5В и GND (Arduino). Теперь можно подключить интерфейс ISP, для этого выводы SCK, CS, SO (модуля MAX6675), подключаем к выводам 2, 3, 4 (Arduino).

Установка библиотеки MAX6675.

Для работы с модулем необходимо установить библиотеку MAX6675. Для этого запускаем программу Arduino IDE и выбираем «Скетч -> Подключить библиотеку -> Управлять библиотеками…»

 установить библиотеку MAX6675

В открывшемся окне ищем «MAX6675» и устанавливаем библиотеку. Сейчас можно приступить к коду для Arduino.

 ищем «MAX6675» и устанавливаем библиотеку

Скетч MAX6675 + Arduino считывания показаний с термопары и вывод значений в монитор порта.

Данный пример кода просто считывает показание с термопары и выводит значение в монитор порта.

В данном уроке мы рассмотрели основы работы с термопарой и модулем MAX6675. У меня есть несколько реализованных проектов с использованием термопары, вот один из нихАвтоматизация вакуумного пресса на Arduino и дисплее Nextion.

В следующих Arduino Уроках рассмотрим, как автоматически регулировать температуру с помощью IRF520 MOSFET.

В следующих Arduino Уроках рассмотрим, как автоматически регулировать температуру с помощью IRF520 MOSFET.

Появились вопросы или предложения, не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Термопара – это один из видов температурных датчиков, который может применяться в измерительных устройствах и системах автоматизации. Ей присущи определенные преимущества: дешевизна, высокая точность, широкий по сравнению с термисторами и микросхемами цифровых датчиков температуры диапазон измерения, простота и надежность. Однако выходное напряжение термопары мало и относительно, а схема измерителя на термопаре сложна, так как предъявляются жесткие требования к прецизионному усилению сигнала с термопары и к схеме компенсации. Для разработки таких устройств существуют специализированные микросхемы, интегрирующие схему преобразования и обработки аналогового сигнала. С помощью этих микросхем можно построить достаточно компактный измеритель температуры с термопарой в качестве датчика (Рисунок 1).

Вебинар «Особенности применения литиевых батареек Fanso (EVE) в популярных решениях» (30.11.2021)

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

Принципы

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

Принцип действия основан на эффекте Зеебека или, иначе, термоэлектрическом эффекте. Между соединенными проводниками имеется контактная разность потенциалов. Если стыки связанных в кольцо проводников находятся при одинаковой температуре, сумма таких разностей потенциалов равна нулю. Когда же стыки находятся при разных температурах, разность потенциалов между ними зависит от разности температур. Коэффициент пропорциональности в этой зависимости называют коэффициентом термо-ЭДС. У разных металлов коэффициент термо-ЭДС разный и, соответственно, разность потенциалов, возникающая между концами разных проводников, будет различной. Помещая спай из металлов с отличными коэффициентами термо-ЭДС в среду с температурой Т1, мы получим напряжение между противоположными контактами, находящимися при другой температуре Т2, которое будет пропорционально разности температур Т1 и Т2 (Рисунок 2).

Генерирование термо-ЭДС в термопаре, образованной двумя разнородными проводниками.

Существует несколько типов термопар, в зависимости от используемой пары материалов (чистый металл или сплав). В нашем проекте мы используем термопару K-типа (хромель-алюмель), которая часто применяется в промышленных инструментах и приборах. Выходное напряжение термопары K-типа составляет приблизительно 40 мкВ/°С, следовательно, потребуется схема усиления сигнала с небольшим смещением напряжения по входу.

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

Схема компенсации холодного спая, введение поправки к измеренной термо-ЭДС.

Чтобы получить значение температуры с помощью термопары потребуется аналоговая схема, например прецизионный операционный усилитель и схема компенсации холодного спая. Однако, существует несколько видов специализированных микросхем со встроенным интерфейсом термопары. Эти микросхемы интегрируют указанные выше аналоговые схемы и значительно упрощают проект. В нашем случае мы выбрали микросхему MAX31855 компании Maxim. Она содержит аналоговую схему и аналого-цифровой преобразователь, следовательно, на выходе микросхемы мы получим цифровые данные. Перед покупкой микросхемы необходимо заранее определить тип термопары, которая будет использоваться в устройстве.

Основные характеристики микросхемы MAX31855:

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

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

Принципиальная схема измерителя температуры изображена на Рисунке 5.

Принципиальная схема измерителя температуры на AVR с термопарой

Сердцем прибора является микроконтроллер Atmel AVR ATmega164P. Микросхема MAX31855 подключается к микроконтроллеру по интерфейсу SPI.

В качестве источника питания используется батарея типоразмера LR1 с напряжением 1.5 В. Для питания микроконтроллера и микросхемы интерфейса термопары используется схема повышающего DC/DC преобразователя, выполненного на микросхеме серии XC9111, обеспечивающего выходное напряжение 3.0 В. Микроконтроллер осуществляет управление питанием и отслеживает напряжение батареи.

Так как для питания используется элемент питания 1.5 В, для отображения данных оптимально использовать сегментный статический ЖК индикатор TWV1302W, который применяется в цифровых устройствах измерения температуры (Рисунок 6). Рабочее напряжение этого индикатора 3 В. При использовании индикатора с рабочим напряжением 5 В потребуется дополнительная схема преобразователя напряжения (Рисунок 7). Функции управления индикатором выполняет микроконтроллер. При таком решении потребляемый устройством ток составит 4 мА, а батарея прослужит, как минимум, 100 часов.

Внешний вид символьного ЖК индикатора TWV1302W.

Вариант схемы преобразователя напряжения применяемой в случае использования ЖК индикатора с рабочим напряжением 5 В.

Измеритель температуры совместно с ПК или ноутбуком может использоваться в качестве системы сбора данных. Для этого предусмотрена возможность подключения к последовательному порту RS-232 для передачи данных. Настройки порта: 8 бит данных, 1 стоп-бит, скорость передачи данных 300 бит/с.

В программе микроконтроллера реализуется чтение данных по интерфейсу SPI с интервалом 0.5 сек и отображение измеренного значения на ЖК индикаторе. Управление индикатором осуществляется в фоновом режиме.

Загрузки

Исходный код программы микроконтроллера – скачать
Демонстрационное видео – скачать

Читайте также: