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

 
 
> Как сделать вычисление значения температуры по градуировочной таблице термопары?
Ivan Kuznetzov
сообщение Feb 25 2009, 10:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Как сделать вычисление значения температуры по градуировочной таблице термопары?

Пишу прогу на сях.
К примеру, измеряем напряжение с термопары, усиливаем его (с известным Ку) и подаем на вход ADC0 атмеги - там делим на Ку и получаем милливольты;
есть также градуировочная таблица для термопары вида:

float gradtbl[131]={0 , 0.40 , 0.80 , 1.20 ...... и т.д. 131 значение


как сделать пересчет значения миливольт в градусы?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Goodefine
сообщение Feb 26 2009, 07:30
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Цитата
...но десятых долей нету почему-то...

Возможно, теряется точность. Попробуйте чуть иначе:
Код
float gradtbl[131]={/*...*/};
//...
uchar index;
float u_tmpr;        //переведенное в флоат-милливольты измеренное напряжение
float tmpr_value; //переменная для температуры
//с одним циклом:
for(i=0;i<131;i++)                {
                   if(gradtbl[i]>=u_tmpr){index=i; break;}  
                              }

//окончательное значение
tmpr_value=10*(index-1) +( u_tmpr - gradtbl[index-1])*10/(gradtbl[index]-gradtbl[index-1]);

Кстати, Ваш код вывода на дисплей можно увидеть?

Сообщение отредактировал Goodefine - Feb 26 2009, 07:35


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Feb 26 2009, 08:19
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Goodefine

Отлично все заработало! Спасибо!

код для лсиди выложу - он у меня самописный - кодевижновский меня не устраивает

в моем коде:
1) 4-х проводный интерфейс
2)можно все ноги дисплея переназначать
3) на RW я забил и посадил его на землю - нафига мне с дисплея читать?? biggrin.gif

...только после 130 градусов - остаток всегда .75

вот мучает меня вопрос - а во флаше хранить таблицу можно? а то память она жрет....

если делаю вот так - то не работает:
Код
flash float gradtbl[131]={0 , 0.40 , 0.80 , 1.20 , 1.61 , 2.02 , 2.43 , 2.85 , 3.26 , 3.68,


Сообщение отредактировал Ivan Kuznetzov - Feb 26 2009, 08:20


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 26 2009, 08:51
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Ivan Kuznetzov @ Feb 26 2009, 11:19) *
Goodefine

Отлично все заработало! Спасибо!


...только после 130 градусов - остаток всегда .75

вот мучает меня вопрос - а во флаше хранить таблицу можно? а то память она жрет....

если делаю вот так - то не работает:
Код
flash float gradtbl[131]={0 , 0.40 , 0.80 , 1.20 , 1.61 , 2.02 , 2.43 , 2.85 , 3.26 , 3.68,

По Вашей таблице видно, что у Вас диапазон 1300 градусов, а в таблице числа в милливольтах.
Разрядность Вашего АЦП (градуировка близка к линейной) позволяет разрешить примерно 1 градус (еще точнее - 1.3). Таблица через 10 градусов. При таких обстоятельствах можно (или нужно)
а) уменьшить таблицу в два - три - четыре... раза. Может быть, неравномерно - постройте график - там, где отклонение от прямой будет меньше 0.5 градуса, нет смысла дробить интервал.
б) в таблицу вместо милливольтов записать целые числа - соответствующие коды АЦП, в другую - соответствующую температуру.
Или полином.
Go to the top of the page
 
+Quote Post
xemul
сообщение Feb 26 2009, 09:27
Сообщение #5



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Tanya @ Feb 26 2009, 11:51) *
По Вашей таблице видно, что у Вас диапазон 1300 градусов, а в таблице числа в милливольтах.
Разрядность Вашего АЦП (градуировка близка к линейной) позволяет разрешить примерно 1 градус (еще точнее - 1.3). Таблица через 10 градусов. При таких обстоятельствах можно (или нужно)
а) уменьшить таблицу в два - три - четыре... раза. Может быть, неравномерно - постройте график - там, где отклонение от прямой будет меньше 0.5 градуса, нет смысла дробить интервал.
б) в таблицу вместо милливольтов записать целые числа - соответствующие коды АЦП, в другую - соответствующую температуру.
Или полином.

Зачем Вы так изощренно издеваетесь над программистами?smile.gif Любой контроллер или процессор и сам должен все сделать.
Я предполагаю, что автор использует АЦП АВР с внутренней опорой (которая по даташиту имеет точность +-10%) и вряд ли эту опору калибрует. Исходя из точности опоры я предложил кривую термопары аппроксимировать прямой (парой, тройкой,... - опять же исходя из требуемой и достижимой точности) и забить на всякие плавучие таблицы.
Но, похоже, для конкретных программистов точность - это сколько знаков после запятой можно вывести на индикатор.
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Feb 26 2009, 09:33
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Цитата(xemul @ Feb 26 2009, 14:27) *
Зачем Вы так изощренно издеваетесь над программистами?smile.gif Любой контроллер или процессор и сам должен все сделать.
Я предполагаю, что автор использует АЦП АВР с внутренней опорой (которая по даташиту имеет точность +-10%) и вряд ли эту опору калибрует. Исходя из точности опоры я предложил кривую термопары аппроксимировать прямой и забить на всякие плавучие таблицы.
Но, похоже, для конкретных программистов точность - это сколько знаков после запятой можно вывести на индикатор.

совершенно верно! использую внутренний опорный источник МК на 2.5 вольт


--------------------
Разработчик
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ivan Kuznetzov   Как сделать вычисление значения температуры по градуировочной таблице термопары?   Feb 25 2009, 10:37
- - Petka   Цитата(Ivan Kuznetzov @ Feb 25 2009, 13:3...   Feb 25 2009, 10:57
- - Tanya   Цитата(Ivan Kuznetzov @ Feb 25 2009, 13:3...   Feb 25 2009, 11:15
|- - MrYuran   Цитата(Tanya @ Feb 25 2009, 14:15) Только...   Feb 25 2009, 11:18
- - _Pasha   Цитата(Ivan Kuznetzov @ Feb 25 2009, 14:3...   Feb 25 2009, 11:22
- - xemul   Начните лучше с требуемых точностных характеристик...   Feb 25 2009, 11:27
- - Goodefine   Как вариант: Задаем массив, разбив участки зависи...   Feb 25 2009, 12:26
|- - _Pasha   Цитата(Goodefine @ Feb 25 2009, 16:26) Ра...   Feb 25 2009, 12:30
|- - Ivan Kuznetzov   Цитата(Goodefine @ Feb 25 2009, 17:26) Ка...   Feb 25 2009, 12:34
- - Goodefine   ЦитатаКуда удобнее расстояние делать в 1 попугай А...   Feb 25 2009, 12:35
|- - Ivan Kuznetzov   Цитата(Goodefine @ Feb 25 2009, 17:35) За...   Feb 25 2009, 12:46
|- - _Pasha   Цитата(Ivan Kuznetzov @ Feb 25 2009, 16:4...   Feb 25 2009, 12:53
|- - Ivan Kuznetzov   Цитата(_Pasha @ Feb 25 2009, 17:53) И зач...   Feb 25 2009, 13:12
|- - _Pasha   Цитата(Ivan Kuznetzov @ Feb 25 2009, 17:1...   Feb 25 2009, 13:30
- - Goodefine   Зачем здесь флоат не понятно. Видно (из табл), что...   Feb 25 2009, 13:06
- - Goodefine   Если по Вашему (с флоат), то проще примерно так: К...   Feb 25 2009, 14:02
|- - demiurg_spb   Ну Вы маньяки. Нужна всего одна целочисленная табл...   Feb 25 2009, 22:17
|- - Ivan Kuznetzov   Цитата(demiurg_spb @ Feb 26 2009, 03:17) ...   Feb 26 2009, 04:59
|- - demiurg_spb   Цитата(Ivan Kuznetzov @ Feb 26 2009, 07:5...   Feb 26 2009, 06:11
- - AlexU   Цитата(Ivan Kuznetzov @ Feb 25 2009, 13:3...   Feb 26 2009, 06:34
- - Сергей К   По поводу компенсации: я вот думаю, можно ли сразу...   Feb 26 2009, 06:37
|- - Ivan Kuznetzov   Goodefine По Вашему примеру все работает хорошо -...   Feb 26 2009, 06:44
|- - xemul   Цитата(Ivan Kuznetzov @ Feb 26 2009, 12:3...   Feb 26 2009, 09:58
- - Goodefine   Цитата...диапазон 1300 градусов... ...АЦП (градуир...   Feb 26 2009, 10:56
|- - xemul   Цитата(Goodefine @ Feb 26 2009, 13:56) Сп...   Feb 26 2009, 11:13
- - Ivan Kuznetzov   хух! в общем все! получился ПИД регулятор ...   Feb 26 2009, 11:07
|- - Tanya   Цитата(Ivan Kuznetzov @ Feb 26 2009, 14:0...   Feb 26 2009, 11:45
|- - Ivan Kuznetzov   Цитата(Tanya @ Feb 26 2009, 16:45) Десяты...   Feb 26 2009, 12:39
|- - Tanya   Цитата(Ivan Kuznetzov @ Feb 26 2009, 15:3...   Feb 26 2009, 14:34
|- - haker_fox   Цитата(Tanya @ Feb 26 2009, 22:34) Прикру...   Feb 26 2009, 15:26
||- - Tanya   Цитата(haker_fox @ Feb 26 2009, 18:26) Ой...   Feb 26 2009, 19:18
||- - Designer56   Цитата(Tanya @ Feb 27 2009, 00:18) И полу...   Feb 26 2009, 19:25
||- - Tanya   Цитата(Designer56 @ Feb 26 2009, 22:25) О...   Feb 26 2009, 19:40
||- - galjoen   Цитата(Tanya @ Feb 26 2009, 22:40) А для ...   Feb 27 2009, 18:14
||- - Tanya   Цитата(galjoen @ Feb 27 2009, 21:14) Печк...   Feb 27 2009, 18:44
||- - galjoen   Цитата(Tanya @ Feb 27 2009, 21:44) Модель...   Feb 27 2009, 19:21
|||- - Tanya   Цитата(galjoen @ Feb 27 2009, 22:21) А ес...   Feb 27 2009, 19:54
|||- - galjoen   Цитата(Tanya @ Feb 27 2009, 22:54) Учтите...   Feb 27 2009, 20:11
|||- - Tanya   Цитата(galjoen @ Feb 27 2009, 23:11) Тем ...   Feb 27 2009, 20:14
||- - Oldring   Цитата(Tanya @ Feb 27 2009, 22:44) Нет у ...   Apr 21 2009, 10:01
|- - Огурцов   Цитата(Tanya @ Feb 26 2009, 15:34) Возьми...   Feb 27 2009, 21:39
|- - Tanya   Цитата(Огурцов @ Feb 28 2009, 00:39) Изви...   Feb 28 2009, 06:34
|- - Ivan Kuznetzov   вот еще мне непонятно - чем так плох алгоритм авто...   Feb 28 2009, 10:25
|- - Tanya   Цитата(Ivan Kuznetzov @ Feb 28 2009, 13:2...   Feb 28 2009, 13:32
|- - galjoen   Цитата(Tanya @ Feb 28 2009, 16:32) ... И ...   Feb 28 2009, 14:29
|- - Ivan Kuznetzov   Цитата(galjoen @ Feb 28 2009, 19:29) +1 Н...   Mar 3 2009, 05:09
|- - Tanya   Цитата(Ivan Kuznetzov @ Mar 3 2009, 08:09...   Mar 3 2009, 10:01
|- - Ivan Kuznetzov   Цитата(Tanya @ Mar 3 2009, 15:01) ПИД - н...   Mar 3 2009, 10:21
|- - Tanya   Цитата(Ivan Kuznetzov @ Mar 3 2009, 13:21...   Mar 3 2009, 10:39
|- - galjoen   Цитата(Tanya @ Mar 3 2009, 13:39) Я бы (п...   Mar 3 2009, 11:21
|- - Tanya   Цитата(galjoen @ Mar 3 2009, 14:21) А воо...   Mar 3 2009, 11:35
|- - galjoen   Цитата(Tanya @ Mar 3 2009, 14:35) Сложнее...   Mar 3 2009, 11:52
|- - Tanya   Цитата(galjoen @ Mar 3 2009, 14:52) Конеч...   Mar 3 2009, 12:06
||- - galjoen   Цитата(Tanya @ Mar 3 2009, 15:06) Ну... В...   Mar 3 2009, 12:22
||- - Ivan Kuznetzov   Цитата(Tanya @ Mar 3 2009, 17:06) Ну... В...   Mar 7 2009, 16:25
||- - Tanya   Цитата(Ivan Kuznetzov @ Mar 7 2009, 19:25...   Mar 7 2009, 16:42
||- - galjoen   Цитата(Ivan Kuznetzov @ Mar 7 2009, 19:25...   Mar 7 2009, 16:44
|- - akken   Цитата(galjoen @ Mar 3 2009, 14:52) Конеч...   Apr 17 2009, 18:25
|- - galjoen   Цитата(akken @ Apr 17 2009, 22:25) Читал,...   Apr 21 2009, 16:32
|- - Oldring   Цитата(galjoen @ Apr 21 2009, 20:32) Т.к....   Apr 21 2009, 16:38
|- - galjoen   Цитата(Oldring @ Apr 21 2009, 20:38) Може...   Apr 21 2009, 21:10
|- - Oldring   Цитата(galjoen @ Apr 22 2009, 01:10) Как ...   Apr 21 2009, 21:25
|- - akken   Цитата(galjoen @ Apr 22 2009, 00:10) Как ...   Apr 22 2009, 08:50
|- - Oldring   Цитата(akken @ Apr 22 2009, 12:50) При за...   Apr 22 2009, 09:40
||- - akken   Цитата(Oldring @ Apr 22 2009, 12:40) Про ...   Apr 22 2009, 10:44
||- - Oldring   Цитата(akken @ Apr 22 2009, 14:39) Вот эт...   Apr 22 2009, 10:51
|||- - akken   Цитата(Oldring @ Apr 22 2009, 13:51) Удив...   Apr 22 2009, 11:46
|||- - Oldring   Цитата(akken @ Apr 22 2009, 15:46) Нельзя...   Apr 22 2009, 11:56
|||- - akken   [quote name='Oldring' date='Apr 22 200...   Apr 22 2009, 12:12
||||- - Oldring   Цитата(akken @ Apr 22 2009, 16:12) Через ...   Apr 22 2009, 12:18
|||||- - akken   Цитата(Oldring @ Apr 22 2009, 15:18) Два ...   Apr 22 2009, 13:06
||||- - galjoen   Цитата(akken @ Apr 22 2009, 16:12) Началь...   Apr 22 2009, 13:22
|||- - Tanya   Цитата(Oldring @ Apr 22 2009, 15:56) Не д...   Apr 22 2009, 12:39
|||- - Oldring   Цитата(Tanya @ Apr 22 2009, 16:39) Какой ...   Apr 22 2009, 12:44
|||- - Tanya   Цитата(Oldring @ Apr 22 2009, 16:44) Три ...   Apr 22 2009, 12:56
|||- - Oldring   Цитата(Tanya @ Apr 22 2009, 16:56) Стенок...   Apr 22 2009, 13:12
||- - Tanya   Цитата(akken @ Apr 22 2009, 14:44) регуля...   Apr 22 2009, 10:53
||- - Oldring   Цитата(Tanya @ Apr 22 2009, 14:53) до мик...   Apr 22 2009, 10:57
||- - Tanya   Цитата(Oldring @ Apr 22 2009, 14:57) Вот ...   Apr 22 2009, 12:34
||- - Oldring   Цитата(Tanya @ Apr 22 2009, 16:34) Темпер...   Apr 22 2009, 12:37
|- - Tanya   Цитата(akken @ Apr 22 2009, 12:50) Особен...   Apr 22 2009, 09:43
|- - Oldring   Цитата(Tanya @ Apr 22 2009, 13:43) А печк...   Apr 22 2009, 09:45
- - xemul   "Они не ведают, что творят." На всякий с...   Feb 26 2009, 12:07
|- - rx3apf   Цитата(xemul @ Feb 26 2009, 15:07) ...   Feb 26 2009, 15:04
- - Designer56   Для быстрых можно проинтегрировать, при нужде...По...   Feb 26 2009, 19:48
- - Ivan Kuznetzov   с конденсатором С2 на схеме ошибка- в реали стоит ...   Feb 27 2009, 12:47
|- - Tanya   Цитата(Ivan Kuznetzov @ Feb 27 2009, 15:4...   Feb 27 2009, 16:52
- - Designer56   Кроме того, датчик температуры в печке (очень зави...   Feb 27 2009, 18:58
- - an_ga   По поводу регуляторов (для информации): http://my....   Feb 28 2009, 12:41
- - ведущий_специалист   а как насчет такой микросхемы как DS75? В связке с...   Mar 7 2009, 17:28
|- - Ivan Kuznetzov   Цитата(ведущий_специалист @ Mar 7 2009, 22...   Mar 8 2009, 18:11
- - ведущий_специалист   ds75 нужна для компенсации по температуре в месте ...   Mar 9 2009, 08:23
- - noise2009   А нет ли исходников на ассемблере с градуровочными...   Apr 15 2009, 12:30
- - Ivan Kuznetzov   ну вот и все - проект почти закончил, состыковал с...   Apr 21 2009, 09:18
- - Tanya   Цитата(Ivan Kuznetzov @ Apr 21 2009, 13:1...   Apr 21 2009, 09:36
2 страниц V   1 2 >


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

 


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


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