|
Алгоритм отображения температуры, С дискретностью 0.1С |
|
|
|
Jul 14 2009, 10:39
|
Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265

|
Как создать видимость "точного" термометра (до 0.1)? Замеряю температуру с дискретностью 1 градус, а хотелось бы отображать с десятыми долями К примеру при температуре отображаю 10.0 в это время замеры показывают 11 и надо плавно (10.1-10.2-10.3....11.0) изменить показания. Не могу придумать как добится плавности (без ускорений и замедлений) и "достоверности". PS: требуют замер до десятых долей градуса а у датчика в измеряемом диапазоне (-50 ...+110) точность 2 %
|
|
|
|
|
Jul 14 2009, 10:50
|
Группа: Новичок
Сообщений: 6
Регистрация: 6-07-07
Из: КЗ
Пользователь №: 28 943

|
Скользящий фильтр из 12 значений - как только пришол три раза подряд замер 11 градусов - с каждым последующим выводом на индикатор прибавлять 0,1 градуса...(12 замеров - для того, что бы убедиться, что там именно 11 градусов, а не просто дискретик бьется...)
|
|
|
|
|
Jul 14 2009, 11:43
|
Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265

|
Цитата(Eladar @ Jul 14 2009, 14:50)  Скользящий фильтр из 12 значений - как только пришол три раза подряд замер 11 градусов - с каждым последующим выводом на индикатор прибавлять 0,1 градуса...(12 замеров - для того, что бы убедиться, что там именно 11 градусов, а не просто дискретик бьется...) Если я правильно понял, то это не обеспечит плавности К примеру температура повышается на 1 град. в минуту, а замеры идут каждую секунду, тогда дисплей оттикает десятые за 10 сек а потом 50 сек будет показывать 11.0
|
|
|
|
|
Jul 14 2009, 12:18
|
Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265

|
Цитата(Lexdaw @ Jul 14 2009, 16:01)  Так это точность измерения 2% а дискрету можно выводить любую хоть 0.01 С Pазрядности встроенного в ATMega АЦП нехванит для такой дискретности, из-за нелинейности датчика на 1 единицу АЦП будет приходится от 0,4 до 1,2 градуса температуры. Вот и надо как то забить эти пробелы в показаниях.
Сообщение отредактировал Vitek885 - Jul 14 2009, 12:18
|
|
|
|
|
Jul 14 2009, 12:37
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Vitek885 @ Jul 14 2009, 15:43)  Если я правильно понял, то это не обеспечит плавности К примеру температура повышается на 1 град. в минуту, а замеры идут каждую секунду, тогда дисплей оттикает десятые за 10 сек а потом 50 сек будет показывать 11.0 У вас температура ступеньками чтоли меняется? Или плавно ползёт? Если плавно, то и показания будут так же плавно меняться, а если ступеньками - то скруглёнными ступеньками. Ещё есть техника оверсемплинга, когда к полезному сигналу подмешивают белый шум и усредняют. Можно поднять разрешение АЦП на пару разрядов. А может, просто поменять схему измерения? Природу ведь не обманешь
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Jul 14 2009, 13:01
|
Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265

|
Цитата(MrYuran @ Jul 14 2009, 16:37)  У вас температура ступеньками чтоли меняется? Или плавно ползёт? Ползет Цитата техника оверсемплинга... белый шум...внеполосный Наверно надо было сказать что я начинающий)) Можно поподробнее, для чего и как это делается
Сообщение отредактировал Vitek885 - Jul 14 2009, 13:02
|
|
|
|
|
Jul 16 2009, 04:05
|
Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265

|
Цитата(Vishv @ Jul 15 2009, 22:57)  Если не секрет - что за датчик ? Что надо измерять (условия измерения температуры)? Датчик NTC; Марки незнаю есть только это
Прикрепленные файлы
NTC.doc ( 58 килобайт )
Кол-во скачиваний: 52
|
|
|
|
|
Jul 16 2009, 18:06
|
Местный
  
Группа: Участник
Сообщений: 310
Регистрация: 11-07-09
Из: Екатеринбург
Пользователь №: 51 154

|
Судя по всему это резистивный (м.б. полупроводниковый) датчик. Еще раз - условия применения (вода, воздух, масло, инертные газы, агрессивные среды)? Если условия более менее нормальные, ну например измерение температуры наружной плверхности батарей то можно применить готовый датчик температуры (при условии, что в системе, как я понял есть микропроцессор) DS1624 (-55 - +125 град., точность - лучше 0,1 град.)
|
|
|
|
|
Jul 18 2009, 14:45
|
Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265

|
Цитата(Vishv @ Jul 16 2009, 22:06)  Еще раз - условия применения один датчик меряет температуру воздуха, второй температуру на охлаждающей поверхности Цитата(Vishv @ Jul 16 2009, 22:06)  можно применить готовый датчик температуры (при условии, что в системе, как я понял есть микропроцессор) DS1624 (-55 - +125 град., точность - лучше 0,1 град.) Только этот датчик, иного не дано((( Цитата(Tanya @ Jul 17 2009, 00:23)  Вы бы лучше просветили общественность, зачем Вам все это... для чего, и как... Эта Ваша Видимость... Кого Вы хотите обмануть? Или Сами обманываться рады? Еще раз - зачем? Извеняюсь за невольную скрытность)) Необходимо собрать контроллер холодильной камеры. Уже используемые неподходят, либо по функционалу либо по цене. Поэтому пытаюсь создать что-то подобное (наверное больше ради самообразования, чем ради выгоды, т.к. интересно и вдруг пригодится) В готовом контроллере температура измеряется 10 разрядным АЦП меги16, с дискретностью 0,1 градус. Исходя из параметров датчика и разрядности АЦП я думаю что в нем применяется какой-то алгоритм отображения температуры. Хотя принаблюдении за изменением температуры по этому контроллеру, каких либо "аномалий" не заметил (скачков, тормозов) Или все таки можно замерить температуру, с необходимой дискретностью в диапазоне -50..+110 данным видом датчикаЕще раз извеняюсь, но я начинающий, светодиодом помигал, напрядение встоенным а мегу АЦП померял хочу двигатся дальше
Сообщение отредактировал Vitek885 - Jul 18 2009, 14:46
|
|
|
|
|
Jul 18 2009, 15:05
|
Частый гость
 
Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686

|
Цитата(Vitek885 @ Jul 14 2009, 16:18)  Разрядности встроенного в ATMega АЦП нехванит для такой дискретности, из-за нелинейности датчика на 1 единицу АЦП будет приходится от 0,4 до 1,2 градуса температуры. Вот и надо как то забить эти пробелы в показаниях. Неверно посчитали, получаться 1 разряд АЦП равен 0,15 град. С - теоретически, реально можно получить 0,2 град. С (в вблизи нуля и максимального значения точность снижается у АЦП ATmega). ДЛя того чтобы получить 0,1 град надо разрешение АЦП не хуже 11 бит - два варианта или использовать 12 бит внешние или используя встроенное АЦП алгоритмом повысить разрядность с 10 бит до 12 бит (необходим запас).
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|