|
Проблема с термопарой, ... или с АЦП ? |
|
|
|
Aug 5 2010, 15:23
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
Делаю терморегулятор для печи. Термопару для отладки взял от китайского тестера (в фторопластовой изоляции с разъемом на конце). Индикация - четыре 7-сегментных знакоместа. Вывожу значение напряжения с первого канала, куда подключена термопара. Отрицательный вывод термопары соединен с опорным напряжением +2,5В, которое является опорным для АЦП (AD7799). Режим измерения - биполярный. Проблема в том, что при правильном подключении термопары ("-" к AIN1-, "+" к AIN1+) значение напряжения неизменное от температуры (прикладываю конец ТП к включенной настольной лампе). Если же подключить ТП наоборот к АЦП, то, значение меняется по температуре, но, естественно, в обратную сторону. В чем может быть дело?
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Aug 6 2010, 14:04
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата Обратили внимание Обратил. Но там тоже есть разрядность. И из-за её ограниченности бывают характерные ошибки. http://ltwood.wikidot.com/float Сначала long с реальным значением несколько более 2^23 приводится к float, а не double, потому как STEPS_B имеет тип float, потом это нечто умножается на float 2.5, потом ещё пару действий с float, ну и уж потом выполняется приведение к double. И чтобы double действительно было double, а не float, часто компилеру опции нужно выставлять, но и то это имеет смысл если ещё и в поставке есть соответствующие либы. В данном случае (термопара для чего-то там) собственная ошибка сигнала не стОит оперирования с ним как с вещественным значением.
--------------------
aka Vit
|
|
|
|
|
Aug 6 2010, 14:39
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(sensor_ua @ Aug 6 2010, 18:04)  В данном случае (термопара для чего-то там) собственная ошибка сигнала не стОит оперирования с ним как с вещественным значением. Добавлю? Можно даже и так. Чтобы перевести кванты АЦП в микровольты можно подобрать рациональное число, обеспечивающее нужную точность и... микровольты (или миллиградусы или сотые градуса) = кванты (без смещения)* числитель / знаменатель. Как подобрать - http://ru.wikipedia.org/wiki/%D0%9D%D0%B5%...%BE%D0%B1%D1%8CЧтобы правильно переводить в градусы нужно еще вычесть Эдс температуры холодных спаев в квантах. Но это все равно придется делать.
|
|
|
|
Сообщений в этой теме
alux Проблема с термопарой Aug 5 2010, 15:23 Tanya Цитата(alux @ Aug 5 2010, 19:23) Отрицате... Aug 5 2010, 15:54 alux по даташиту напряжение на входе при включенном буф... Aug 5 2010, 20:23  Tanya Цитата(alux @ Aug 6 2010, 00:23) по даташ... Aug 6 2010, 03:10 MrYuran Цитата(alux @ Aug 5 2010, 19:23) Отрицате... Aug 5 2010, 20:32 alux Цитата(MrYuran @ Aug 5 2010, 23:32) Поясн... Aug 6 2010, 05:57  MrYuran Цитата(alux @ Aug 6 2010, 09:57) Покажите... Aug 6 2010, 06:05  Tanya Цитата(alux @ Aug 6 2010, 09:57) Что имен... Aug 6 2010, 06:28 alux Блин, ерунда какая-то...
Подключил отрицательный в... Aug 6 2010, 07:54 MrYuran Цитата(alux @ Aug 6 2010, 11:54) Блин, ер... Aug 6 2010, 08:04  alux Цитата(MrYuran @ Aug 6 2010, 11:04) А на ... Aug 6 2010, 08:18   Tanya Цитата(alux @ Aug 6 2010, 12:18) В принци... Aug 6 2010, 09:50 Tanya Цитата(alux @ Aug 6 2010, 11:54) В чем де... Aug 6 2010, 08:09 sensor_ua Странно это. Выглядит как попутанные шнурки тестер... Aug 6 2010, 10:04 alux Выкладываю сырцы.
Код// HEADER
//-----------------... Aug 6 2010, 11:04 sgrig Самое интересное вот здесь:
Цитата(alux @ Aug... Aug 6 2010, 11:43  alux продолжение...
Код//------------------------------... Aug 6 2010, 11:51   Tanya Цитата(alux @ Aug 6 2010, 15:51) продолже... Aug 6 2010, 12:10 sensor_ua Код(AdcValue - STEPS_B) * VREF / 128 / STE... Aug 6 2010, 13:37 alux Цитата(sensor_ua @ Aug 6 2010, 16:37) Код... Aug 6 2010, 13:45 alux В симуляторе проверил функцию Result.TemperatureTC... Aug 6 2010, 18:36 MrYuran А если откинуть пока лишнюю математику и посмотрет... Aug 6 2010, 18:42 alux Для этого необходимо либо UART, либо ЖКИ. Aug 6 2010, 18:55 Tanya Цитата(alux @ Aug 6 2010, 22:55) Для этог... Aug 7 2010, 03:36 alux чтобы выводить 8-значные числа кодов АЦП.
PS. Оч... Aug 7 2010, 06:19 sgrig Burnout выключите. Какой проц используете? JTAG ил... Aug 7 2010, 07:12 alux Burnout выключен, - проблема та же.
ATmega8535. Б... Aug 7 2010, 07:47 sgrig А сколько сегментов на индикаторе?
Для меня сомни... Aug 7 2010, 08:02 alux я переделал под целочисленную арифметику, по совет... Aug 7 2010, 10:53 Tanya Цитата(alux @ Aug 7 2010, 14:53) На индик... Aug 7 2010, 11:11 sensor_ua Так сколько показывает? И какое напряжение сигнала... Aug 7 2010, 11:44 alux Цитата(sensor_ua @ Aug 7 2010, 14:44) Так... Aug 7 2010, 12:11  Tanya Цитата(alux @ Aug 7 2010, 16:11) Объяснит... Aug 7 2010, 12:18 sensor_ua Самое простое, если у Вас 8-и-сегментные индикатор... Aug 7 2010, 13:15 alux Цитата(sensor_ua @ Aug 7 2010, 16:15) Пос... Aug 7 2010, 14:42 sensor_ua Насчёт long long Вы написали всё правильно и я на... Aug 7 2010, 15:53 alux Подключил UART. Отдельная плата с MAX232, соединяе... Aug 8 2010, 05:13 Krys Цитата(MrYuran @ Aug 6 2010, 03:32) Что-т... Aug 10 2010, 07:38 sensor_ua ЦитатаПолностью поддерживаю! Это следует из пр... Aug 10 2010, 14:45 Krys Цитата(sensor_ua @ Aug 10 2010, 21:45) АЦ... Aug 11 2010, 04:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|