Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Температурный датчик в F350
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Jil
Здравствуйте!
Я использую встроенный термодатчик в одноканальном режиме. Получаю 24 разрядный код.
Подскажите, пожалуйста, как преобразовать этот код в температуру в градусах цельсия. Читал an103. Но по их примеру не получается получить похожую на правду температуру.
Kolia
Откалибруй датчик по какой-нибудь мере (например по ртутному термометру). В даташите передаточная характеристика линейная, поэтому будет достаточно 1 точки для калибровки (при комнатной температуре).
Jil
Но в AN103 температуру находят по формулам. Из CODE=Vtemp * Gain/Vref * 2(в степени N) находят Vtemp. Подставляют в TEMP=(Vtemp - Смещение)/Крутизна.
Получают формулу TEMP=(CODE-41857)/154 (это для С8051f000). Этот контроллер имеет 12 разрядный АЦП. Значит максимальный CODE может быть 4095. Если подставить 4095 в формулу температуры, то получается -254 градуса(при меньших значениях CODE еще меньшую температуру). Или я что то не так понимаю????
Kolia
С одной точкой это я погорячился.
Нужно 2 точки.

1-вая точка значение АЦП при 0 градусов - это смещение.
2-ая точка значение АЦП при 21 градусе (или любая другая).

Тогда

Смещение = значение АЦП 1-вой точки
Крутизна =(значение АЦП 2-вой точки-значение АЦП 1-вой точки)/(21-0) -> отрицательный

TEMP = (CODE - Смещение)/Крутизна


ВСЕ ninja.gif
Chet05
Возможно, чем-то поможет...
Я пользую 120ый проц, меряю температуру так:
TempC=(TempCode-41857)/154,
где TempCode - 12тиразрядный отсчет АЦП, TempC - температура в градусах.
Один нюанс: код должен быть сдвинут влево, и коэффициент передачи мультиплексора должен быть равен 2!
Удачи!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.