Ардуино измерение температуры термопарой

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Arduino и датчик температуры термопары на основе MAX6675

Термопара типа K является наиболее распространенным типом термопар. Она недорогая, точная, надежная и имеет широкий температурный диапазон. В этой статье показано, как использовать микроконтроллер Arduino Uno / Nano с модулем дисплея OLED для считывания данных термопары типа K. Как и следовало ожидать, существует аналоговый интерфейс MAX6675 для прямого цифрового преобразования выходных данных термопары типа K. Программное обеспечение, выполняемое в фоновом режиме, переводит показания термопары в воспринимаемые значения температуры в градусах Цельсия или Фаренгейта.

Микросхема MAX6675, доступная в 8-контактном корпусе SO, выполняет компенсацию холодного спая и оцифровывает сигнал от термопары типа K. Окончательный вывод данных производится в 12-разрядном формате, совместимом с SPI.

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

Подключение данного модуля с MAX6675 к Arduino выполняется довольно просто: Vcc к 5 V, Gnd к Gnd, SO к D4, CS/SS к D5, CSK к D6. Термопара подключается к модулю MAX6675 с противоположной стороны от контактов, ведущих к Arduino.

Ниже приведен простой скетч для теста. Для работы с модулем вам понадобится библиотека MAX6675 (https://github.com/adafruit/MAX6675-library).

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

Теперь подключим к полученной конструкции OLED-дисплей 128 × 64 к Arduino по шине I2C (OLED SDA к A4, OLED SCL к A5).

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

Использование Arduino и термопары с MAX6675 – это простой и недорогой способ создания простого, но надежного ручного цифрового термометра.

Источник

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

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

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

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

Работа схемы

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

При изменении температуры изменяется сопротивление терморезистора (термистора). Но в нашей схеме мы не будем измерять сопротивление термистора напрямую, вместо этого мы использовали делитель напряжения, одним из резисторов которого является известное сопротивление 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() мы должны инициализировать ЖК дисплей.

Источник

Обзор модуля преобразователя термопары на MAX6675

Автор: Сергей · Опубликовано 07.02.2021 · Обновлено 05.02.2021

Сегодня расскажу о наиболее распространённой термопаре тика К, которая позволяет измерять температуру до 600 ℃. Распространение термопары типа К, связано с ее точностью, дешевизной и надежностью. В статье приведу пример подключения термопары типа К к Arduino UNO, в качестве преобразователя аналогового сигнала в цифровой будет выполнять микросхема MAX6675.

Технические параметры:

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

Обзор модуля MAX6675

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

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

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

Подключение модуля MAX6675 к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуль преобразователя термопары на MAX6675 с термопарой типа К x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

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

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

Откроется новое окно «Менеджер библиотек», в окне поиска вводим «MAX6675» и устанавливаем библиотеку.

Программа:
Данный скетч просто считываем показания температуры и отображает в «Мониторинге порта«.

Источник

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

Видео по теме

Источник

Поделиться с друзьями
Моя стройка
Adblock
detector