Термопара К типа и AVR
Термопара К типа и AVR
Вообще делаю терморегулятор для ИК станции (тоже самодельной).
Схема с термисторами отпала по простой причине что их просто тяжело было достать.
Решено было делать на термопаре.
Схема типа LM358 + термопара отпала сразу так как точности тут нету не какой, а для чипсетов и прочей дребедни даже градус имеет не малую роль.
В общем схема такая.
Термопара заходит на дифференциальный вход MCP3421 - это 18 битная дельта сигма ацп. Далее по I2C передается на контроллер, на компенсацию холодного спая идет датчик DS18B20. Была идея поставить max6675 уже готовая ацп с компенсацией спая как раз для К типа, но я их просто не смог найти)
Далее в контроллере это необходимо все перевести в температуру.
Есть так называемый аппроксимирующий полином - берется из
Интересует полином от 0С до 1372С на странице 65 данного госта.
В общем помогите преобразовать данный полином в код на си. Программирую в CodeVisionAvr( в принцепи можно в чем угодно код- разберусь)
Или же может у кого есть более удачная реализации линеаризации аппаратным методом - важна точность.
Схема с термисторами отпала по простой причине что их просто тяжело было достать.
Решено было делать на термопаре.
Схема типа LM358 + термопара отпала сразу так как точности тут нету не какой, а для чипсетов и прочей дребедни даже градус имеет не малую роль.
В общем схема такая.
Термопара заходит на дифференциальный вход MCP3421 - это 18 битная дельта сигма ацп. Далее по I2C передается на контроллер, на компенсацию холодного спая идет датчик DS18B20. Была идея поставить max6675 уже готовая ацп с компенсацией спая как раз для К типа, но я их просто не смог найти)
Далее в контроллере это необходимо все перевести в температуру.
Есть так называемый аппроксимирующий полином - берется из
Интересует полином от 0С до 1372С на странице 65 данного госта.
В общем помогите преобразовать данный полином в код на си. Программирую в CodeVisionAvr( в принцепи можно в чем угодно код- разберусь)
Или же может у кого есть более удачная реализации линеаризации аппаратным методом - важна точность.
Последний раз редактировалось grinay Сб дек 03, 2011 17:23:20, всего редактировалось 1 раз.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Термопара К типа и AVR
Не въехал, нужен негр-наборщик? Полиномы-то простые, умножай да складывай. Или..?
Docendo discimus
Re: Термопара К типа и AVR
Так в том то и дело что не простые...Для к типа как раз самый сложный полином и есть. И если брать алгоритм найденный на просторах инета
http://webcache.googleusercontent.com/s ... clnk&gl=ru
*output =
poly1->C[0] + input * (poly1->C[1] + input * (poly1->C[2] + input *
(poly1->C[3] + input * (poly1->C[4] + input * (poly1->C[5] + input *
(poly1->C[6] + input * (poly1->C[7] + input * (poly1->C[8] + input *
(poly1->C[9])))))))))
+
(double) ( (long double) poly1->alpha[0] *
powl( (long double) 2.718281828,
(long double) (poly1->alpha[1]*
(input - 126.9686)*(input - 126.9686))));
Все это будет считаться очень долго к тому же типа long double от контроллера не добиться - поэтому и прошу помощи разложить полином так, чтобы максимально просто его можно было посчитать с помощью контроллера..
P.S. контроллер тактируется от кварца 12 МГц
http://webcache.googleusercontent.com/s ... clnk&gl=ru
*output =
poly1->C[0] + input * (poly1->C[1] + input * (poly1->C[2] + input *
(poly1->C[3] + input * (poly1->C[4] + input * (poly1->C[5] + input *
(poly1->C[6] + input * (poly1->C[7] + input * (poly1->C[8] + input *
(poly1->C[9])))))))))
+
(double) ( (long double) poly1->alpha[0] *
powl( (long double) 2.718281828,
(long double) (poly1->alpha[1]*
(input - 126.9686)*(input - 126.9686))));
Все это будет считаться очень долго к тому же типа long double от контроллера не добиться - поэтому и прошу помощи разложить полином так, чтобы максимально просто его можно было посчитать с помощью контроллера..
P.S. контроллер тактируется от кварца 12 МГц
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Термопара К типа и AVR
Docendo discimus
Re: Термопара К типа и AVR
Куда то вы не туда смотрите...Это точно не для К типа.
Вот какой полином интересует
Вот какой полином интересует
- Вложения
-
- Untitled-1.jpg
- (3.96 КБ) 3814 скачиваний
Re: Термопара К типа и AVR
т.е это уже второе выражение расчета.
Последний раз редактировалось grinay Сб дек 03, 2011 17:28:27, всего редактировалось 1 раз.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Термопара К типа и AVR
Docendo discimus
Re: Термопара К типа и AVR
Так стоп. 71 страница - это по версии Adobe Reader если брать страницу госта то 65.
Re: Термопара К типа и AVR
pyzh_man писал(а):на странице 71 данного госта
Извиняюсь - не доглядел.Исправил.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Термопара К типа и AVR
Извинения приняты.
(Походу меня троллят. Кто будет оплачивать мой трафик?)
Ну да вся разница в том, что к сумме прибавите еще одно значение. (Там же нет скобок, просто +).
Ну да вся разница в том, что к сумме прибавите еще одно значение. (Там же нет скобок, просто +).
Docendo discimus
Re: Термопара К типа и AVR
Я так понимаю сначала надо сделать это -

Потом вот это

Помогите%) Это как то упростить чтоли...
Потом вот это

Помогите%) Это как то упростить чтоли...
Re: Термопара К типа и AVR
просто есть еще такой документик.
http://www.picad.com.ua/0105/pdf/50-54.pdf
он дает такой полином.

Но как это выразить на си что-то не могу сообразить..
http://www.picad.com.ua/0105/pdf/50-54.pdf
он дает такой полином.
Но как это выразить на си что-то не могу сообразить..
- Вложения
-
- Untitled-2.jpg
- (10.39 КБ) 3671 скачивание
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Термопара К типа и AVR
Это не документ, а, как вы верно заметили, документик, журнальная статья, которая может содержать опечатки. Так что ориентируемся на ГОСТ. И конкретно на полиномы стр.72 ГОСТа (а не ридера). Вам же нужна температура из напряжения, а не наоборот.
Итого насколько понял: измерили АЦПом, получили 18-ти разрядное число, привязанное к Aref. Это число преобразуем в напряжение. Далее тупо подставляем коэффициенты и считаем - полинома два по разделу температур.
Итого насколько понял: измерили АЦПом, получили 18-ти разрядное число, привязанное к Aref. Это число преобразуем в напряжение. Далее тупо подставляем коэффициенты и считаем - полинома два по разделу температур.
Docendo discimus
Re: Термопара К типа и AVR
Т.е. ты хочешь сказать что
этого полинома достаточно для вывода правильной температуры?:)
этого полинома достаточно для вывода правильной температуры?:)Re: Термопара К типа и AVR
Просьба коммерсантов вроде pyzh_man не писать. Прощу просто помочь хотя бы уж разобраться как все же правильно получить температуру. Имеется напряжение термопары. Имеется температура холодного спая.
А вот как это сложить в единое целое и получить результатирующую температуру не догоняю)
А вот как это сложить в единое целое и получить результатирующую температуру не догоняю)
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Термопара К типа и AVR
Дабы расставить точки над i привожу текст своего сообщения:
??? Сижу, обтекаю.
Добрый день! Вроде все разжевали, не составит труда особого самим написать. Могу, конечно, написать, но за оплату работы.
??? Сижу, обтекаю.
Docendo discimus
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Термопара К типа и AVR
Вот код Леонида Ивановича без полинома:
http://telesys-ru.1gb.ru/wwwboards/mcon ... 2932.shtml
применил в своей поделке, а Леониду Ивановичу коньяка с пивом не проставил
http://telesys-ru.1gb.ru/wwwboards/mcon ... 2932.shtml
применил в своей поделке, а Леониду Ивановичу коньяка с пивом не проставил

Re: Термопара К типа и AVR
А целиком код покажешь?:)
1.От куда взялась таблица?
2 Из какой ацп данные показания.?
const int __flash Lin[TC_POINTS] =
{
-824, -531, -259, //-3..-1 мВ
0, 250, 495, 736, 976, 1220, 1466, 1715, 1965, 2215, // 0.. 9 мВ
2462, 2707, 2950, 3190, 3430, 3668, 3906, 4143, 4378, 4614, //10..19 мВ
4849, 5083, 5318, 5553, 5787, 6022, 6258, 6494, 6731, 6969, //20..29 мВ
7208, 7449, 7690, 7933, 8177, 8423, 8670, 8919, 9169, 9421, //30..39 мВ
9674, 9929, 10186, 10445, 10706, 10969, 11234, 11501, 11772, //40..48 мВ
12045, 12321, 12600, 12883, 13169, 13460 //49..54 мВ
};
3.Как выглядит функция Code2uV
Это я уже все видел.... Но все не то%)
1.От куда взялась таблица?
2 Из какой ацп данные показания.?
const int __flash Lin[TC_POINTS] =
{
-824, -531, -259, //-3..-1 мВ
0, 250, 495, 736, 976, 1220, 1466, 1715, 1965, 2215, // 0.. 9 мВ
2462, 2707, 2950, 3190, 3430, 3668, 3906, 4143, 4378, 4614, //10..19 мВ
4849, 5083, 5318, 5553, 5787, 6022, 6258, 6494, 6731, 6969, //20..29 мВ
7208, 7449, 7690, 7933, 8177, 8423, 8670, 8919, 9169, 9421, //30..39 мВ
9674, 9929, 10186, 10445, 10706, 10969, 11234, 11501, 11772, //40..48 мВ
12045, 12321, 12600, 12883, 13169, 13460 //49..54 мВ
};
3.Как выглядит функция Code2uV
Это я уже все видел.... Но все не то%)
