реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> термопара, измерение температуры термопарой
-SANYCH-
сообщение Sep 11 2013, 09:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 6-12-05
Пользователь №: 11 864



Собственно задача: Нужно собрать датчик температуры на термопаре который способен мереть температуру от 0 до 500 градусов. Точность приблизительно +/- 5 градусов. Посоветуйте микросхему на которой можно собрать это дело. Я так понимаю что нужна микросхема с термокомпенсацией.
Go to the top of the page
 
+Quote Post
Lotor
сообщение Sep 11 2013, 10:14
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Как вариант AD7793 + мк


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 11 2013, 10:17
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(-SANYCH- @ Sep 11 2013, 13:57) *
Собственно задача: Нужно собрать датчик температуры на термопаре который способен мереть температуру от 0 до 500 градусов. Точность приблизительно +/- 5 градусов. Посоветуйте микросхему на которой можно собрать это дело. Я так понимаю что нужна микросхема с термокомпенсацией.

По поводу "точности"... У термопар нелинейная характеристика. И еще там есть "изломы" и были ошибки в ГОСТЕ...
Так что по поводу "точности" не все так просто...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Herz
сообщение Sep 11 2013, 10:18
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Вы бы уточнили, что нужно делать с измеренным значением. А то и микросхемы не нужно, достаточно взять мультиметр с соответствующим входом.
Go to the top of the page
 
+Quote Post
-SANYCH-
сообщение Sep 11 2013, 10:29
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 6-12-05
Пользователь №: 11 864



Цитата
Вы бы уточнили, что нужно делать с измеренным значением. А то и микросхемы не нужно, достаточно взять мультиметр с соответствующим входом.


Дальше планирую измерять значение с помощью 10-и разрядного АЦП (применить какой нить простенький восьмибитный микроконтроллер stm8s003 или аналогичный). После чего эти данный будут передаваться в исполняющее устройство по протоколу I2C или SPI еще точно не определился.
Меня сейчас интересует аналоговая часть. Какие есть там подводные камни? Что бы не произошло так что каждый датчик получится уникальный или например будет измеряемая температура плавать от окружающей температуры в которой находится сама аналоговая микросхема с микроконтроллером.
Go to the top of the page
 
+Quote Post
Lotor
сообщение Sep 11 2013, 10:35
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Смотрите мой ответ выше, а конкретнее страницу 28 из datasheet на AD7793 - там будет схема подключения термопары. Температуру холодного спая компенсируете rtd, в этой микросхеме есть встроенный источник тока для этих целей. Нелинейность выправите в МК, там же сделаете возможность выбирать тип термопары (у каждой свои полиномы).


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
-SANYCH-
сообщение Sep 11 2013, 11:06
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 6-12-05
Пользователь №: 11 864



Микросхема AD7793 то хорошая но цена у нее космическая. За такую цену можно купить 30 микроконтроллеров rolleyes.gif
Может что нить есть подешевле? тестеры китайци на чем то делаю. Мне бы такой точности даже хватило бы
Go to the top of the page
 
+Quote Post
Herz
сообщение Sep 11 2013, 15:45
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Если в МК уже есть АЦП, то осталось только поставить усилитель с компенсацией температуры холодного спая. Но делать его нужно аккуратно. И это вполне нормально, что стоить будет дороже контроллера, а то и десятка контроллеров.
Посмотрите здесь.
Go to the top of the page
 
+Quote Post
One
сообщение Sep 12 2013, 04:27
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 29-01-06
Из: Питер
Пользователь №: 13 728



MAX6675ISA -12-Bit, 0.25°C Resolution (0°C to +1024°C) Cold-Junction-Compensated K-Thermocouple-to-Digital Converter. 8SOIC;
AD8494CRMZ - 5 mV/°C Full J-Type Range 0° to 50° Thermocouple Amplifier w/Cold Junction Compensation supply 2.7V to ±18V High Gain Accuracy – 0.1%, 8mSOP;
AD8495CRMZ - 5 mV/°C Full K-Type Range 0° to 50° Thermocouple Amplifier w/Cold Junction Compensation supply 2.7V to ±18V High Gain Accuracy – 0.1%. 8mSOP
Go to the top of the page
 
+Quote Post
Леонид Иванович
сообщение Sep 13 2013, 05:16
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 21-07-06
Из: Минск
Пользователь №: 18 986



В одном из проектов подключал термопару к 10-разрядному встроенному АЦП микроконтроллера. Предусилителдь собирал на zero-drift ОУ. Для компенсации холодного спая использовал цифровой термометр DS18B20. Линеаризацию и компенсацию CJ делал так:

Код
//----------------------------- Константы: -----------------------------------

#define ADC_RES    1023  //разрешение АЦП, квантов
#define ADC_REF    2500  //опорное напряжение АЦП, мВ
#define R_FB      100.0  //номинал резистора обратной связи ОУ, кОм
#define R_GND       1.0  //номинал резистора с инв. входа ОУ на землю, кОм
#define TCJ_K      40.0  //температурный коэффициент для CJ, мкВ/°C
#define TCJ_RES     0.1  //дискретность температуры холодного спая, °C
#define FIR_N (int)(TSAMPLE * 1E3 / T_SYS) //количество точек цифрового фильтра
#define GAIN ((R_FB + R_GND) / R_GND) //коэффициент усиления сигнала термопары

#define TC_V_MAX   24   //максимальное напряжение термопары, мВ
#define TC_POINTS (TC_V_MAX + 1) //количество точек таблицы

//Таблица линеаризации термопары K-типа. В таблице даны значения
//температуры в десятых долях градуса в зависимости от напряжения.
//Диапазон температур 0...+578.7°C.
//Шаг напряжения - 1 мВ, диапазон 0..+24 мВ:

const int __flash Lin[TC_POINTS] =
{
     0,  250,  495,  736,  976, // 0.. 4 мВ
  1220, 1466, 1715, 1965, 2215, // 5.. 9 мВ
  2462, 2707, 2950, 3190, 3430, //10..14 мВ
  3668, 3906, 4143, 4378, 4614, //15..19 мВ  
  4849, 5083, 5318, 5553, 5787  //20..24 мВ
};

//----------------------- Вычисление температуры: ----------------------------

int Convert(long code, int tcj)
{
  //вычисление напряжения термопары в мкВ:
  int Vtc = (((code * ADC_REF) / ADC_RES) * 1000L) / (long)(FIR_N * GAIN);
  //вычисление эквивалентного напряжения холодного спая:
  //делается приближение, что в диапазоне рабочих температур
  //холодного спая коэффициент термопары постоянен
  //tcj имеет дискретность TCJ_RES
  //TC_K имеет размерность мкВ/°C
  //Vcj представлено в мкВ
  int Vcj = tcj * (int)(TCJ_K * TCJ_RES);
  //вычисление напряжения термопары с компенсацией холодного спая:
  int Vhj = Vtc + Vcj;
  //получение целого числа милливольт:
  signed char Index = Vhj / 1000;
  //проверка выхода за диапазон вниз:
  if(Index < 0) return(0);
  //проверка выхода за диапазон вверх:
  if(Index > TC_POINTS - 2) return(Lin[TC_POINTS - 1] + 1);
  //чтение первой точки таблицы:
  int p1 = Lin[Index];
  //чтение второй точки таблицы:
  int p2 = Lin[++Index];
  //вычисление дельты на интервале 1 мВ:
  int DeltaT = p2 - p1;
  //вычисление дробной части милливольт:
  int DeltaV = Vhj % 1000;
  //линейная интерполяция по отрезку 1 мВ,
  //p1 - температура в десятых градуса:
  p1 = p1 + (long)DeltaV * DeltaT / 1000L;
  return(p1);
}




Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
x-men
сообщение Sep 13 2013, 08:28
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 25-09-07
Пользователь №: 30 817



Цитата(Леонид Иванович @ Sep 13 2013, 11:16) *
В одном из проектов подключал термопару к 10-разрядному встроенному АЦП микроконтроллера. Предусилителдь собирал на zero-drift ОУ. Для компенсации холодного спая использовал цифровой термометр DS18B20. Линеаризацию и компенсацию CJ делал так:

Можно вопрос для готового ответа нахаляву? sm.gif
Понимаю что можно оценку сделать, но все не соберусь никак... А вы этот путь уже прошли.
Какую погрешность в оценке температуры спая дает ошибка в измерении (компенсации) температуры холодного спая?
Градус к градусу.
Go to the top of the page
 
+Quote Post
Herz
сообщение Sep 13 2013, 08:43
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(x-men @ Sep 13 2013, 10:28) *
Какую погрешность в оценке температуры спая дает ошибка в измерении (компенсации) температуры холодного спая?
Градус к градусу.

1:1. А как может быть иначе? Термопара меряет разность температур. Другое дело, что если разность велика, то есть относительно окружающей среды (или другого референса) Вы меряете очень высокую (или очень низкую) температуру, то изменение темп-ры холодного спая на градус большой погрешности не даст. Ведь уже не так важно, 1000 или 1001 градус в измеряемом месте...
Посмотрите документ по ссылке, что я давал выше.
Go to the top of the page
 
+Quote Post
x-men
сообщение Sep 13 2013, 09:32
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 25-09-07
Пользователь №: 30 817



Да я как то все думал про разницу в термоэдс рабочего спая и холодного...
Спасибо за файл!
Я его по плюшкински быстренько скачал, пролистал вначале и сохранил. sm.gif
Надо изучить подробно.
Go to the top of the page
 
+Quote Post
bureau
сообщение Sep 15 2013, 07:44
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Хотите попроще... Можете попробовать использовать вот этот кусок схемы...
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Herz
сообщение Sep 15 2013, 11:06
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(bureau @ Sep 15 2013, 10:44) *
Хотите попроще... Можете попробовать использовать вот этот кусок схемы...

Этот кусок схемы от RTD, наверное?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 11:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016