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

 
 
> термопара, измерение температуры термопарой
-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
 
Start new topic
Ответов
Herz
сообщение Sep 11 2013, 15:45
Сообщение #2


Гуру
******

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



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


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 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
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 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

Сообщений в этой теме
- -SANYCH-   термопара   Sep 11 2013, 09:57
- - Lotor   Как вариант AD7793 + мк   Sep 11 2013, 10:14
- - iosifk   Цитата(-SANYCH- @ Sep 11 2013, 13...   Sep 11 2013, 10:17
- - Herz   Вы бы уточнили, что нужно делать с измеренным знач...   Sep 11 2013, 10:18
- - -SANYCH-   ЦитатаВы бы уточнили, что нужно делать с измеренны...   Sep 11 2013, 10:29
- - Lotor   Смотрите мой ответ выше, а конкретнее страницу 28 ...   Sep 11 2013, 10:35
- - -SANYCH-   Микросхема AD7793 то хорошая но цена у нее космиче...   Sep 11 2013, 11:06
|- - Ruslan1   Кстати, вполне и AD7792 подходит, процентов на 10-...   Sep 15 2013, 21:25
|- - Herz   Цитата(x-men @ Sep 13 2013, 10:28) К...   Sep 13 2013, 08:43
- - x-men   Да я как то все думал про разницу в термоэдс рабоч...   Sep 13 2013, 09:32
|- - bureau   Хотите попроще... Можете попробовать использовать ...   Sep 15 2013, 07:44
|- - Herz   Цитата(bureau @ Sep 15 2013, 10:44) Хотит...   Sep 15 2013, 11:06
|- - bureau   Да   Sep 15 2013, 11:59
|- - Herz   Цитата(bureau @ Sep 15 2013, 13:59) Да То...   Sep 15 2013, 13:54
|- - bureau   Цитата(Herz @ Sep 15 2013, 16:54) Тогда э...   Sep 15 2013, 18:44
|- - Herz   Цитата(bureau @ Sep 15 2013, 20:44) Почем...   Sep 15 2013, 19:55
- - -SANYCH-   ЦитатаЭтот кусок схемы от RTD, наверное? А что так...   Sep 15 2013, 12:18
- - Lagman   Термометр сопротивления   Sep 15 2013, 13:12
- - bureau   Понимаю, но просто автор попросил Цитата(-SAN...   Sep 15 2013, 20:56
|- - Herz   Цитата(bureau @ Sep 15 2013, 22:56) Вот я...   Sep 16 2013, 07:34
- - Vasily_   А вот это не подходит? MAX31855, дешевле и точнее ...   Sep 16 2013, 09:06
- - Lagman   Есть еще Semtech http://www.semtech.com/analog-con...   Sep 16 2013, 15:24


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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 18:21
Рейтинг@Mail.ru


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