Преобразование значения АЦП в эквивалентную температуру?

Я работаю над контроллером влажности, который также контролирует температуру внутри камеры. Я закончил с аппаратным обеспечением (хотя я не тот, кто стоит за дизайном), и который изначально был разработан с 12-битным внешним АЦП и 89s52. uc, и я заменил оба на PIC 16F877A uc, и я использую 10-битный внутренний АЦП.

Другие детали оборудования (я могу предоставить схему, хотя она кажется громоздкой).введите описание изображения здесь

Я грубо проверил напряжение на двух каналах АЦП, заменив датчики потенциометром на 500 Ом (на данный момент не беспокоясь об ошибках), и получил следующие цифры.

предлагаемый темп | напряжение @ АЦП

  1. 5 °C -------------- 1,650 В
  2. 6 °C -------------- 1,660 В
  3. 80 oC ------------- 2,480 В

предложенная влажность | напряжение @ АЦП

  1. 30% (990 мВ) --------- 0,098 В
  2. 31% (1023 мВ) ------- 0,101 В
  3. 32% (1056 мВ) ------- 0,104 В
  4. 33% (1089 мВ) ------- 0,107 В
  5. 34% (1122 мВ) ------- 0,110 В
  6. 40% (1300 мВ) ------- 0,128 В
  7. 90% (2970 мВ) ------- 0,29 В

    Я хочу использовать это оборудование для следующих требований

    • Темп. измерение - 5-80 oC, разрешение 0,5 oC
    • Относительная влажность - 30-90%, разрешение 1%

И мои опасения

  1. Должен ли я изменить опорное напряжение на 2,5 В, поскольку я вижу, что максимальное измеряемое напряжение составляет 2,48 В? Или это напряжение ошибочно, поскольку исходное оборудование рассчитано на 1,235 В.

    • напряжение на входе АЦП (датчика температуры) регулируется так, чтобы сделать его в пределах 1,235 В (поэтому я думаю, что это лучшая производительность) за счет некоторых незначительных аппаратных изменений (например, изменение значения сопротивления для изменения коэффициента усиления усилителя)
  2. Достижимы ли мои требования с одной конфигурацией АЦП, так как меня беспокоят приблизительные цифры, которые я получил (входные значения АЦП для температуры и влажности несопоставимы или это тоже ошибка?)?

    • для температуры, которую я мог измерить только с шагом 1 oC, так как диаграмма RTD ( для европейской кривой, альфа = 0,00385, ITS-90 ) была предоставлена ​​с шагом 1 oC. Для измерения разрешения 0,5 oC можно ли разделить изменение напряжения для приращения на 1 oC на 2 (при условии, что кривая является линейной или нет!?)
  3. Как эффективно определить время выборки АЦП (учитывая тот факт, что датчики реагируют медленно, переходные колебания напряжения в линии и т. д.)

  4. Наконец, как значения АЦП преобразуются в эквивалентные значения процесса? (Извините, если название вопроса совпадает только здесь)

    • По таблице искать? (в моем случае 150 значений (для температуры) + 60 значений (относительная влажность)) или я могу использовать какой-то расчет? (если да, то как получить линейную зависимость между значениями АЦП и значениями процесса). Какой метод эффективен с точки зрения точности?
Эээ, 990мВ это 0,99В. 2970мВ это 2.97В. Что-то определенно не так в ваших настройках.
@Passerby Да, я знаю преобразование между мВ и В. Я дал значения, наблюдаемые на входе АЦП для напряжения на датчике. напряжение на АЦП должно быть таким же, как и на датчике, поскольку оно проходит через серию операционных усилителей, верно?
О, ладно, пока от него ожидают такого поведения.
Способ, который я использовал для измерения PRT в PIC, заключается в том, чтобы признать, что вам необходимо повторно линеаризовать (в коде) из-за внутреннего уравнения PRT, а затем подать его через резистор от 3,3 В (то же напряжение, что и для внутренний АЦП, обозначенный как PIC ADC), усиливают его затем на входе PIC ADC. Ваша схема использует внутреннюю ссылку PIC и внешнюю ссылку, и ошибка может быть значительной. Если вы питаете PRT, как я предложил, вы делаете логометрическое измерение АЦП, которое исключает любые несоответствия опорных значений.

Ответы (1)

1) Измените R8/P1, чтобы получить желаемый диапазон напряжения для температур, которые вы хотите измерить.

2) Установите P2 выше, чтобы значения соответствовали диапазону вашего АЦП.

3) Установите время выборки не более чем в X раз постоянной времени вашей системы, включая датчики. Найдите хорошее число для X в зависимости от требований системы. Однако вы можете захотеть усреднить количество быстрых выборок, чтобы уменьшить шум/добавить биты.

4) Комбинация интерполяционной таблицы и интерполяции обычно работает хорошо. Создайте лист Excel, чтобы показать ошибку приближения - массируйте его, пока он не будет работать для вашего приложения.

Вы получили ответ на свой вопрос?