Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.09.2007, 01:04
|
|
Гражданин KAZUS.RU
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
|
Цитата:
|
Следующий момент как считать температуру с точностью до +-0.1 градус?
|
Цитата:
|
Датчик DS18B20 возвращает температуру с фиксированной запятой ... 4 знака после запятой.
Таким образом ... для получения температуры с точностью 0.1 градуса нам нужно возвращаемое значение умножить на 0.625
Код:
value = (value››1) + (value››3);
|
почему так читаем здесь
|
|
|
|
26.09.2007, 17:15
|
|
Гражданин KAZUS.RU
Регистрация: 26.09.2005
Сообщений: 569
Сказал спасибо: 58
Сказали Спасибо 509 раз(а) в 135 сообщении(ях)
|
Кстати о точности: С этими датчиками приходилось общяться плотно. Сам преобразователь (температура-сопртивление)-полупроводник и на его основе даже точность 0.5С большое достижение технологии из-за нелинейности и нестабильности. А 12 бит преобразования - легко достижимый избыток схемотехнического решения. Примените 12 битный АЦП с источником опорного напряжения 4 +-0.5 Вольта. Какая точность преобразования? +-0.5 Вольта, а не 1 мВольт. У датчиков физических величин эта точность в основном определяется чувствительным элементом-преобразователем.
|
|
|
|
25.04.2008, 10:56
|
|
Прописка
Регистрация: 15.01.2008
Сообщений: 120
Сказал спасибо: 5
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от dimonbest
|
Сообщение от idmg
|
Более высокая разрешающая способность может быть получена, если произвести дополнительные вычисления на основе значений COUNT_REMAIN (значение, оставшееся в счетчике в конце измерения) и COUNT_PER_C (количество импульсов на один градус для данной температуры), которые доступны. Для вычислений требуется взять считанное значение температуры и отбросить младший бит. Полученное значение назовём TEMP_READ. Теперь действительное значение температуры может быть вычислено по формуле:
TEMPERATURE=TEMP_READ-0.25+(COUNT_PER_C - COUNT_REMAIN)/COUNT_PER_C
В нашем случае такой расчет позволяет получить дискретность представления температуры 0.1°C.
ссылка: http://www.spetspribor.ru/support/ar...0/ds18s20.html
|
Пересмотрел оригинальный даташит, но в нем не нашел ни формулы такой, ни то что можно измерять с дискретностью 0.1°C! В официальном даташите на первой странице четко написано: "±0.5°C accuracy from –10°C to +85°C" . ТОЧНОСТЬ, а не дискретность. Если точность самой микросхемы пол градуса, то как можно измерять с точностью 0.1??? Кто что может сказать по этому поводу? Вопрос интересен...
|
а у меня вот получилось, долго мучался в PROTEUS там какая-то ерунда получалась, проверил на реальном устройстве - работает, шаг изменения температуры 0,0625 С, после округления получается шаг 0,1 С
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:24.
|
|