Поправка даных АЦП AVR

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Поправка даных АЦП AVR

Сообщение слушатель »

Доброго всем времени суток!
Т.З. Мега8 меряет усиленое напряжение с термрезистора в пределах ~0.5-2.0В (реф 2.56В). Температура от 0 до 150С выводится на 7сегментник.
По скольку х-ка терморезистора нелинейная и в цепях усиления для разных экземпляров разный разброс параметров, было принято решение ввести цыфровую калибровку устройства. Есть магазин эталонных сопротивлений, то есть какбы регулируемый аналог терморезистора, из 16 штук (от 0 до 150С с шагом в 10С). Предполагается при первом подключении проводить програмную калибровку устройства с помощью магазина сопр.
Нашел хорошую книженцию "Трамперт_Измерение, управление и регулирование с помощью AVR микроконтроллеров_2006". Вроде все понятно, разбить весь диапазон на участки, посчитать коэфициенты и пересчитывать при каждом обновлении даных с измерительного элемента. Но там получается четырехэтажная математика с дробными числами. Не получается...
Ткните пожалуйста, как это калибровка вобще организовывается! (Пишу на С в CVAVR)
Реклама
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Поправка даных АЦП AVR

Сообщение uk8amk »

Вообще-то если имеется большой разброс параметров термисторов и неизвестны их точные характеристики, то калибровка прибора проводится с помощью нагревателя и эталонного термометра, а не с помощью магазина сопротивлений.
Откуда там у вас четырехэтажная арифметика? Заводим массив типа float калибровочных значений на 16 элементов(или сколько там у вас точек калибровки) и затем по полученной температуре обращаемся к нужному индексу.
Реклама
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Re: Поправка даных АЦП AVR

Сообщение слушатель »

Там в основном будет играть роль длина проводов до терморез. Последний же промышленный с извесной х-кой, плюс имеется магазин точных сопр. по которому и хотят калибровать (не мой причуд http://radiokot.ru/forum/posting.php?mo ... 20&t=47786# ). По скольку схема двухпроводная и слом в цепях усиления регулировать надо калибровать на програмном уровне.
Из книги Трамперта выходит, что на заданом отрезке надо высчитатьугол наклона(или нулевое смещение) и поправочный коэфициент, записать их в епром, а потом при измерении отнимать и множить на эти коэфициенты.
Всем этим делом должен заниматься камень, но я сомневаюсь, что получится чтото харошее, когда камень начнет делить на флоат...
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Поправка даных АЦП AVR

Сообщение uk8amk »

Как-то запутанно у вас в книге расписано. Нет, оно конечно так и есть(насчет углов наклона), но можно проще. Допустим у вас 10 температурных точек калибровки. Вы знаете какие там должны быть исходные значения с выхода АЦП, теперь замеряете 10 реальных значений и делите одно на другое. Вот они поправочные коэф-ты. Чем вас так сильно испугала процедура деления одного числа на другое?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Re: Поправка даных АЦП AVR

Сообщение слушатель »

Дело в том, что результат преобразования ацп неизвестен, так как у разных экземпляров устройства будет разброс параметров в уселительных цепях. и поправочные коэфициенты должен обсчитать камень. Так он мне будет до завтра просчитывать...
И еще в будущем хотелось бы привязать калибровку к другому термометру, откалиброваному на заводе , напр. lm75. Задум такой: камера нагревается до максимальной температуры потом постепенно охлаждается до минимальной (комнатной). Температура контролируется по выносному датчику (lm75, 18b20) и по мере остывания обоих дачиков призводится автоматическая калибровка термосопртивления
Может кто делал чтото подобное?
Реклама
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Поправка даных АЦП AVR

Сообщение uk8amk »

Какбы результат АЦ-преобразования никогда заранее точно неизвестен. Но можно предсказать в каких пределах он будет находится. Вам нужно взять типовые характеристики всех блоков, входящих в устройство и один раз посчитать идеальные значения. Затем в режиме калибровки вы получаете реальные значения, а из них простой арифметикой поправочные коэф-ты и все.
Так он мне будет до завтра просчитывать...
Ну с таким подходом вам вообще следует отказаться от работы с контроллерами и процессорами... Для примера, операция деления 4-байтовых float на AVR съедает если не ошибаюсь, в районе 1-2 тыс. машинных тактов. Это значит, что при тактовой частоте 8 Мгц деление будет происходит за 100-200 микросекунд. Это примерно 4000...8000 операций деления за секунду. Сомневаюсь что у вас требуется такие большие вычислительные ресурсы. Вы же не Фурье считаете. И то вон, некоторые программеры умудряются простые спектры в реалтайме на AVR-ке просчитывать.
Температура контролируется по выносному датчику (lm75, 18b20) и по мере остывания обоих дачиков призводится автоматическая калибровка термосопртивления
И в результате имеем абсолютную погрешность не лучше 0,5-1 градуса. Так может тогда сразу лучше применить эти датчики и не заморачиваться над калибровкой, схемотехникой усилителей и т.д.?
Реклама
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Re: Поправка даных АЦП AVR

Сообщение слушатель »

По заданию должен стоять именно терморезистор. если бы можно было использовать другой датчик, то я бы и не заморачивался.
Погрешности 1-2 градуса вполне достаточно, там в самой камере перепады в 5 градусов и это нормально.
На счет математики, будем пробывать...
Хотелось бы еще посмотреть чужие проэкты...
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: Поправка даных АЦП AVR

Сообщение phanis »

А если подключить внешнюю энергонезависимую память и туда складывать массив температур для каждого значения АЦП. 1024 Значения по 2 байта на каждое. Ну а поиск осуществлять в массиве можно делением по полам(если конечно не все значения АЦП будут получены).
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Re: Поправка даных АЦП AVR

Сообщение слушатель »

Идея интересная! Но вводить еще и память нет смысла (лишне деньги).
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: Поправка даных АЦП AVR

Сообщение phanis »

Если точность 1 градус температура в пределах 0-150 градусов (от 0,5-2,0 В) получается 2,0-0,5/150 шаг в 1градус равен примерно 0,01 В.
Можно использовать АЦП в 8 битном режиме. 0-255 единиц. Т.е 1 байт на 1 градус. И Создать массив температур со смещением (т.к. 0 единиц не 0 градусов (-50 примерно)) в еепром МК длинной 256 байт .
Верхний предел температуры будет примерно 205 градусов.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»