| Ваш IP: 100.24.46.10 | Online(15) - гости: 5, боты: 10 | Загрузка сервера: 1.16 ::::::::::::

Термопара и Arduino

Для измерения высоких температур используются термопары, в данной статье будет рассмотрен вариант измерения температуры при помощи термопар типа L(ХА) и K(XK).

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

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

  • R — ТПП (Платина — 13 % родий/платина)
  • S — ТПП (Платина — 10 % родий/платина)
  • B — ТПР (Платина — 30 % родий/платина — 6 % родий)
  • J — ТЖК рКелезо/медь — никель (железо/константан)]
  • T — ТМК [Медь/медь — никель (медь/константан)]
  • E — ТХКн [Никель — хром/медь — никель (хромель/константан)]
  • K — ТХА [Никель — хром/никель — алюминий (хромель/алюмель)]
  • N — ТНН [Никель — хром — кремний/никель — кремний (нихросил/нисил)]
  • А — (А-1, А-2, А-3) ТВР (Вольфрам — рений/вольфрам — рений)
  • L — ТХК (Хромель/копель)
  • М — ТМК (Медь/копель)

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

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

Аналоговые входы Arduino не способны измерять напряжение до 100 мВ с достаточной точностью, поэтому в уст-ве применен АЦП модуль ADS1115 16-bit (описание), выходы которого сконфигурированы как дифференциальные для измерения двух полярного напряжения с максимальной амплитудой +/-256 мВ. В качестве датчика температуры окружающей среды используется диод 1N4148.

Измерительный прибор получился достаточно простым, но весьма точным, с погрешностью не более 1,5 ºС во всем диапазоне ХА и ХК. АЦП модуль ADS1115 не нуждается в калибровке, он достаточно точен, а вот датчик температуры окружающей среды на диоде необходимо откалибровать (описание калибровке описано в скетче).

Так же необходимо изменить частоту дискретизации ADS1115, для этого откройте для редактирования файл библиотеки Adafruit_ADS1015.cpp найти все строчки ADS1015_REG_CONFIG_DR_1600SPS и заменить на ADS1015_REG_CONFIG_DR_128SPS , после чего загрузите скетч в Arduino.

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

#include <Wire.h>
#include <Adafruit_ADS1015.h>//https://github.com/adafruit/Adafruit_ADS1X15/archive/master.zip
#include <LiquidCrystal.h>
Adafruit_ADS1115 ads;//(0x48);
/* в файле библиотеки Adafruit_ADS1015.cpp найти все строчки: ADS1015_REG_CONFIG_DR_1600SPS и заменить на: ADS1015_REG_CONFIG_DR_128SPS */
 
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
 
void setup(void)
{Serial.begin(9600);
lcd.begin(16, 2);// LCD 16X2
ads.setGain(GAIN_SIXTEEN); // +/- 0.256V 1 bit = 0.0078125mV
ads.begin();
analogReference(INTERNAL);// опорное 1,1 В
pinMode(A0,INPUT_PULLUP);
pinMode(5,INPUT);
 
}
long u_digital,u_an,u_sum;
const float multiplier = 0.0078125;
float u,u_iz,t,tx_sum,t_sum,t_iz,t_iz_analog,t_analog;
float a[]={0,2.5173462*10,-1.1662878,-1.08336338,-8.9773540/10,-3.7342377/10,-8.6632643/100,-1.0450598/100,-5.1920577/10000};
float b[]{0,2.508355*10,7.860106/100,-2.503131/10,8.315270/100,-1.228034/100,9.804036/10000,-4.413030/100000,1.057734/1000000,-1.052755/100000000};
float c[]{-1.318058*100,4.830222*10,-1.646031,5.464731/100,-9.6550715/10000,8.802193/1000000,-3.110810/100000000};
float e[]={1.1573067/10000,1.5884573*10,4.0458554/100,0.3170064,0.1666128,5.146958/100,9.5288883/1000,1.0301283/1000,6.0654431/100000,1.5131878/1000000};
float f[]{7.2069422/1000,1.5775525*10,-0.2261183,9.4286756/1000,-3.5394655/10000,1.0050886/100000,-1.9323678/10000000,2.3816891/1000000000,-1.7130654/100000000000,5.4857331/100000000000000};
int tx,tip,kn,kn1;
const float t0 = 26.0; // калибровка
const float t0_analog = 545; // По показаниям эталонного градусника задайте свое значение температуры t0, далее посмотрите значение t0_analog в мониторе порта и укажите его
void loop(void){ if(digitalRead(5)==HIGH){kn1++;delay(100);}if(kn1==2){kn1=0;}
lcd.clear();
u_sum=0;tx_sum = 0;
u_iz=u_an * multiplier;
lcd.setCursor(0,0);lcd.print("T = ");lcd.setCursor(4,0);lcd.print(t,1);lcd.print(" C");lcd.setCursor(12,0);
if(tip==0){lcd.print(" TXA ");}if(tip==1){lcd.print(" TXK ");}
lcd.setCursor(0,1);lcd.print(u_iz,2); lcd.print(" mV");lcd.setCursor(11,1);lcd.print(t_iz,1);lcd.print("C");
if(kn1==0){txa();}
if(kn1==1){txk();}
for(int i=0;i<100;i++){
u_digital = ads.readADC_Differential_0_1();
tx = analogRead(A0);// 545 при 26 гр
Serial.println(tx);
tx_sum = tx_sum + tx;
u_sum = u_sum + u_digital;
delay(1);
}
u_an=u_sum/100;
t_analog = tx_sum / 100;// среднее значение
t_iz_analog = (t_analog-t0_analog) / 2;// отклонение гр.Цельсия от t0
t_iz = t0 - t_iz_analog;// вычисление температуры
}
 
void txa(){tip=0;u=u_iz+t_iz*0.0403;// окружающая температура 0.0403 мВ на 1 гр.Цельсия от 0 до 40 гр.Цельсия для TXA
if(u<0){t=(a[0]*pow(u,0))+(a[1]*pow(u,1))+(a[2]*pow(u,2))+(a[3]*pow(u,3))+(a[4]*pow(u,4))+(a[5]*pow(u,5))+(a[6]*pow(u,6))+(a[7]*pow(u,7))+(a[8]*pow(u,8));}
if(u>=0&&u<=20.64){t=(b[0]*pow(u,0))+(b[1]*pow(u,1))+(b[2]*pow(u,2))+(b[3]*pow(u,3))+(b[4]*pow(u,4))+(b[5]*pow(u,5))+(b[6]*pow(u,6))+(b[7]*pow(u,7))+(b[8]*pow(u,8))+(b[9]*pow(u,9));}
if(u>20.64){t=(c[0]*pow(u,0))+(c[1]*pow(u,1))+(c[2]*pow(u,2))+(c[3]*pow(u,3))+(c[4]*pow(u,4))+(c[5]*pow(u,5))+(c[6]*pow(u,6));}
if(u<-6.35){t=-240;} if(u>54.9){t=1372;}
}
void txk(){tip=1;u=u_iz+t_iz*0.06555;// окружающая температура 0.06555 мВ на 1 гр.Цельсия от 0 до 40 гр.Цельсия для TXK
if(u<0){t=(e[0]*pow(u,0))+(e[1]*pow(u,1))+(e[2]*pow(u,2))+(e[3]*pow(u,3))+(e[4]*pow(u,4))+(e[5]*pow(u,5))+(e[6]*pow(u,6))+(e[7]*pow(u,7))+(e[8]*pow(u,8))+(e[9]*pow(u,9));}
if(u>=0){t=(f[0]*pow(u,0))+(f[1]*pow(u,1))+(f[2]*pow(u,2))+(f[3]*pow(u,3))+(f[4]*pow(u,4))+(f[5]*pow(u,5))+(f[6]*pow(u,6))+(f[7]*pow(u,7))+(f[8]*pow(u,8))+(f[9]*pow(u,9));}
if(u<-9.49){t=-200;} if(u>66.47){t=800;}
}

 

Добавить комментарий

Случайные статьи

  • УМЗЧ 40Вт/8Ом

    УМЗЧ 40Вт/8Ом

    Характеристики: Номинальная выходная мощность на нагрузке 8 Ом 40Вт Коэффициент гармоник 0,008% Полоса рабочих частот 20…70000Гц Отношение сигнал шум( не взвешенное) 100дБ Напряжение питания +/-30В Ток покоя 20 мА VT1 и VT6 образуют дифференциальный усилитель с источником постоянного тока на VT4. Нагрузка входного каскада — VT3 VT2 и VT5 образующие …Подробнее...
  • Универсальный адаптер для питания плеера

    Данный адаптер обеспечивает на выходе напряжение 3В при изменении питающего напряжения в пределах 110-220В и при питании от постоянного напряжения от 6 до 15В. При этом ток на нагрузке достигает 0,25А, температурный коэффициент не более 2 мВ на 1 градус Цельсия. Стабилизатор имеет защиту от КЗ на нагрузке, при этом …Подробнее...
  • Параметры, типовой режим и цоколевки электровакуумных приборов широкого применения (кенотороны и диоды)

    Литература РА1998_08Подробнее...
  • Устройство включения ламп накаливания

    Сопротивление холодной нити лампы накаливания в 8…10 раз меньше по сравнению с сопротивлением при номинальном режиме работы, что приводит к ускоренному разрушению нити накала. Для увеличения срока службы лампы накаливания можно применить не сложное уст-во, оно ограничивает ток на несколько секунд во время включения лампы, после чего нить лампы нагревается …Подробнее...
  • Простейший усилитель 3Вт

    Простейший усилитель 3Вт

    Усилитель основан на микросхеме TDA7056. Данная микросхема может работать при низком напряжении питания от 3В до 18В. Микросхема имеет защиту от КЗ выхода. Частотный диапазон от 20 до 20000Гц, КНИ не более 0,25% при выходной мощности 0,5Вт. На рисунке показана схема подключения микросхемы, при нагрузке 16 Ом выходная мощность будет …Подробнее...