Как подключить термопару к Arduino
Часто возникает необходимость заменить приборы контроля и регулировки температур на термопластавтоматах. Здесь можно сделать многоканальный прибор на базе Arduino.
Для подключения термопары к Arduino нужен усилитель. В интернете нашел схему усилителя для термопар на микросхеме LM358, собрал и настроил для работы с термопарой ТХК от — 40 до 400 градусов. В схему добавил датчик температуры DS18B20 для компенсации температуры холодного спая. Этот датчик должен находится поблизости холодного спая.
Программировал Arduino при помощи программы FLProg. C выхода усилителя сигнал поступает на аналоговый вход Arduino. При 100 градусах напряжение на выходе усилителя получается 0,35 вольта (получил при помощи регулировок подстроичным резистром), если температура холодного спая 24 градуса. Чтобы получить константу на каждый градус, я сделал так: 100-24=76 — это разница температуры между холодным спаем и температурой кипения воды. Напряжение 0,35 разделил на 76 и получил 0,0046. То есть на каждый градус на выходе усилителя напряжение увеличивается на 0,0046 вольта. Разрешение Arduino на входе — 1023. То есть, если разделить входное напряжение 5 вольт на 1023, получим константу 0,00488. Программировал следующим образом: входное число умножаем на 0,00488, получаем напряжение на входе, которое делим на константу 0,0046 и получаем температуру между горячим концом термопары и холодным спаем. Затем плюсуем температуру холодного спая и получаем истинную температуру. Опыты проводил кипяченой водой. Температура пара ровно 100 градусов.
На выходе термопары напряжение почти линейное. Точное значение около 100 градусов. На конце диапазона температур может быть расхождение в несколько градусов.
При повторе схемы надо учитывать, что эталонное напряжение взято от питания Arduino. Если значение различается от пять вольт, то для получении константы надо делить истинное напряжение питания на 1023.
DS18B20 имеет свой уникальный адрес в скетче, которые нужно заменить на ваш.
Схема подключения термопары к ардуино
Какую статью добавить следующей?
Подключение термопары к Arduino через MAX6675
Термопара отличается от других датчиков температуры низкой стоимостью, скоростью измерения и большим диапазоном «горячих» температур, обычно от 0 до 400 ºC. Но напрямую к Ардуино ее не подключить, прийдется использовать преобразователь на базе чипа MAX6675.
Схема подключения
Для подачи питания и земли будем использовать 5й и 6й контакты на плате Arduino.
Скетч
Для работы понадобится библиотека MAX6675
Результат работы MAX6675
на глаз +-1°C. Проверял нагрев паяльника до 201 градуса минуты 3, больше ждать не стал, понятно, что работает отлично!
На некоторых китайских поделках есть косяк — «-» термопары должен быть заземлён (соединён с gnd согласно дтш https://pdf1.alldatasheet.com/datasheet-pdf/view/73692/MAXIM/MAX6675.html ). А братья китайцы забыли это сделать. В итоге — показания бред. Заземлите «-» и будет счастье.
ПыСы не забываем что нумерация выводов плат может отличаться.
Добавить строку аналогичную этой
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Но с изменением названия и ножек, например:
MAX6675 thermocoupleNewOne(thermoCLK, thermoCS,12);
А данные соответственно считывать :
float x=thermocouple.readCelsius();// считываем в x данные с первой термопары
float y=thermocoupleNewOne.readCelsius();// считываем в у данные со второй термопары
Ну и дальше отталкиваетесь от того что надо, к разным устройствам ли подключать или фильтрацию делать на одном устройстве
#32. Подключение термопары К-типа к Arduino с помощью модуля max6675.
Для измерения высоких температур обычные датчики, такие как DS18B20, термистор – не подойдут. Высокие температуры можно измерять с помощью термопары. Но как ее подключить к Arduino? Для решения данной проблемы есть недорогой модуль max6675 который позволяет преобразовать аналоговый сигнал в цифровой. Полученное цифровое значение считывает Arduino, таким образом, мы получаем показание с термопары К-типа. А сейчас подробно разберемся, что такое термопара К-типа и как подключить модуль max6675 к Arduino.
Что такое термопар. Характеристики термопары K-типа.
Термопара – это термоэлектрическое устройство замкнутой цепи, чувствительное к температуре, которое состоит из двух проводников, выполненных из разнородных металлов. Электрический ток создается, когда температура на одном конце или спае, отличается от температуры на другом конце. Это явление носит название эффект Зеебека, который является основой измерения температуры с помощью термопар.
Существует много типов термопар, в которых используются различные сочетания металлов. Эти сочетания имеют разные выходные характеристики, которые определяют диапазон температур, в котором можно применять ту или иную термопару, и соответствующий выходной сигнал напряжения.
Термопары K-типа (хромель – алюмель).
Хромель (Chromel) – это сплав, состоящий на 90% из никеля и на 10% из хрома, а Алюмель (Alumel) – это сплав, содержащий 95% никеля, 2% марганца, 2% алюминия и 1% кремния. Термоэлектрод из сплава Chromel имеет положительный потенциал относительно термоэлектрода из сплава Alumel.
Это недорогие термопары, их диапазон измеряемых температур составляет от -270°C до +1372°C и характеристика относительно линейна. Такие термопары можно использовать в постоянно окислительных или нейтральных средах.
Корпус термопары, который используется в нашем примере, рассчитан на температуру до 600 °C, значит и измерения необходимо производить в диапазоне от 0 до 600 °С.
Описание модуля 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.
Подключаем питание, выводы VCC и GND (модуля MAX6675) подключаем к выводам +5В и GND (Arduino). Теперь можно подключить интерфейс ISP, для этого выводы SCK, CS, SO (модуля MAX6675), подключаем к выводам 2, 3, 4 (Arduino).
Установка библиотеки MAX6675.
Для работы с модулем необходимо установить библиотеку MAX6675. Для этого запускаем программу Arduino IDE и выбираем «Скетч -> Подключить библиотеку -> Управлять библиотеками…»
В открывшемся окне ищем «MAX6675» и устанавливаем библиотеку. Сейчас можно приступить к коду для Arduino.
Скетч MAX6675 + Arduino считывания показаний с термопары и вывод значений в монитор порта.
Данный пример кода просто считывает показание с термопары и выводит значение в монитор порта.
Вот такое значения температуры с термопары мы увидим в мониторе порта.
В данном уроке мы рассмотрели основы работы с термопарой и модулем MAX6675. У меня есть несколько реализованных проектов с использованием термопары, вот один из нихАвтоматизация вакуумного пресса на Arduino и дисплее Nextion.
В следующих Arduino Уроках рассмотрим, как автоматически регулировать температуру с помощью IRF520 MOSFET.
Появились вопросы или предложения, не стесняйся, пиши в комментарии!
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке.
Понравилась статья? Поделитесь ею с друзьями:
Подключение термопары к плате Ардуино
Функциональность и богатство возможностей микроконтроллеров помогают автоматизировать многие ниши, требовавшие ранее человеческого внимания. Охранные системы, управление климатом помещений или контроль производственных линий — все названное под силу цифровым помощникам человека, которые не просто выполняют последовательность действий, но и реагируют в рамках своей программы на изменившиеся обстоятельства.
Одной из распространенных моделей микроконтроллеров стали Arduino. Мини-компьютер, обладающий расширенной функциональностью и возможностью относительно простого подключения внешнего оборудования — по праву держит пальму первенства в деле производства прототипов, финальных устройств или участия в DIY-проектах.
Одно из применений Arduino — контроль температуры и запуск вспомогательной аппаратуры в зависимости от ее изменений. Примером служит обычный кондиционер — он работает только в те периоды, когда требуется нагреть или охладить воздух в помещении для приведения его характеристик в соответствие с заложенными значениями. Схематичная конструкция аппарата достаточно проста и характерна для всех устройств, содержащих логический контур:
Вместо вентилятора и нагревателя применяют другие автоматы включения внешнего оборудования, термометр может быть заменен на любой иной датчик или их комплекс. В число подобных входят сенсоры, реагирующие на освещение, звук, приближение, движение среды или нагрев. Причем последние могут быть представлены как специализированными термометрами, так и термопарой, подключаемой к Arduino. Вместо блока дистанционного управления используются электронные компоненты, обеспечивающие многообразие интерфейса с пользователем.
Применение термопары с микроконтроллером
Одной из популярных схем для Ардуино стали «умные» измерители нагрева, способные не только демонстрировать температуру, но и производить различные действия в зависимости от ее текущих значений. Измерения в пределах от −50 до 150 ℃ проводятся достаточно несложным датчиком соединяемым с микроконтроллером. Другое дело, если речь идет об очень высоких или сверхнизких значениях характеристики от −273 до 400 ℃ или выше. Здесь потребуется подключить термопару к Ардуино.
Нишей потребления связки контроллера и термодатчика могут стать паяльники, печи, холодильные установки сверхнизких температур, детекторы открытого пламени. Все те сферы, где требуется точно знать критические уровни нагрева или охлаждения.
Что такое термопара
Термопара представляет собой два соединенных сваркой проводника из разных металлов. За счет отличия температуры холодной части спайки и нагреваемой, на концах электродов возникает ток (эффект Зеебека). Сила его зависит от материалов, применяемых для каждого из проводников, но, в лучшем случае, не превышает нескольких милливольт на сантиметр их поверхности.
Подключение термопары к микроконтроллеру
Определение нагрева с помощью термопары требует обязательного получения информации о температуре холодной части конструкции. Последние данные используются для расчета показаний. Соответственно к Ардуино подключается не только сама термопара, но и датчик определяющий текущее состояние нагрева одного из ее концов.
Так как вырабатываемый ток связкой проводников низок, в обязательном порядке требуется усилитель, для соединения их с микроконтроллером. Нужна и подстройка самодельных устройств под используемые материалы в спайке и их длину. Облегчается ситуация при использовании специализированных АЦП, наподобие MAX6675 или MAX31855. Устройства преобразуют характеристики тока, полученные от термопары, в числовые значения, которые уже и передаются в Ардуино посредством пинов данных. Если использовать только прямое повышение уровня тока иными схемами, — соединение усилителя производится к аналоговым входам микроконтроллера. К сожалению, градация последних составляет всего 1024 уровня, что непосредственно влияет на точность получаемых показаний.
АЦП MAX6675, MAX31855
Представленная далее схема, как и сам АЦП изначально не рассчитаны на использование с термопарами, требующими заземления, что нужно учитывать при разработке финальной конструкции устройства. Платы MAX6675 и MAX31855 электрически взаимозаменяемы. Единственное различие в подключаемой библиотеке. Для первого АЦП получить ее можно по адресу http://github.com/adafruit/MAX6675-library, для второго https://github.com/adafruit/Adafruit-MAX31855-library.
Схема подключения
У обоих АЦП на плате 5 выходных контактов. Два используются для питания, на них подается +5В и GND соответственно. Остальные размечены следующим образом:
Контакт | Описание | Используется |
---|---|---|
CLK | Используется при побитовой передаче — указывая, что можно забрать следующий бит | IN/OUT |
DO | Побитовый вывод результата | OUT |
CS | Устанавливается в HIGH контроллером Arduino для проведения замера | IN |
В качестве линий питания и земли можно также использовать цифровые пины Arduino, но нежелательно. Будут заняты еще два контакта. В случае, если все же требуется использовать такую конструкцию, в инициализацию void setup () нужно добавить следующие строки:
pinMode(pVCC, OUTPUT);
pinMode(pGND, OUTPUT);
digitalWrite(pVCC, HIGH);
digitalWrite(pGND, LOW);
//Пауза на активацию датчика
delay(500);
Соответственно в шапке скетча задать
// пин на котором +5В
#define pVCC 5
// пин для земли
#define pGND 6
Скетч работы с АЦП
// пины соединенные с АЦП MAX
#define DO 2
#define CS 3
#define CLK 4
// для MAX6675
#include «max6675.h»
MAX6675 TD(CLK, CS, DO);
// для MAX
#include «Adafruit_MAX31855.h»
Adafruit_MAX31855 TD(CLK,CS,DO);
void setup() <
Serial.begin(9600);
>
void loop() <
Serial.print(«Celsius = «);
Serial.println(TD.readCelsius());
Serial.print(«; Farentgeit = «);
Serial.println(TD.readFahrenheit());
delay(500);
>
Некоторые замечания по специализированным АЦП
В случае с аналого-цифровым преобразователем непонятно откуда он берет температуру «холодного» конца термопары. Скорее всего считает ее равной измеренной встроенным термодатчиком. Соответственно точность показаний зависит от непосредственного расположения усиливающей платы рядом с измеряющей линией.
Кроме вышеназванной проблемы стоит не забывать о «шумности» входов преобразователя, на которую жалуются пользователи АЦП MAX. Для уменьшения мешающего фактора рекомендуется разместить между контактами термопары фильтрующий конденсатор от 0.001 до 0.01 мкФ.
Критичны и выходные параметры самих спаянных рабочих проводников. Термопара должна давать именно то количество вольт на градус разницы, на которые рассчитаны усилители.
В окончание
Подключить термопару к Arduino очень просто, и программно, и аппаратно. Требуется только операционный усилитель. За рамки статьи вышел разговор об использовании аналоговых его вариантов, зато в целом и полностью рассмотрена схема с применением преобразующих силу полученного тока в цифровой сигнал моделей.
Видео по теме