¿Convertir un valor ADC a temperatura equivalente?

Estoy trabajando en un controlador de humedad que también controla la temperatura dentro de una cámara. Terminé con el hardware (aunque no soy el que está detrás del diseño) y que fue diseñado originalmente con un ADC externo de 12 bits y un 89s52 uc y reemplacé ambos con PIC 16F877A uc y uso el ADC interno de 10 bits .

Otros detalles de hardware son (puedo proporcionar el esquema aunque parece engorroso).ingrese la descripción de la imagen aquí

  • sensor de temperatura -PT100
  • sensor de humedad - SY-HS-220 ( ficha técnica )
  • +Vref para ADC - 1.235V y -vref =0;

Verifiqué aproximadamente el voltaje en los 2 canales ADC reemplazando los sensores con un potenciómetro de 500 ohmios (sin preocuparme por los errores en este punto) y obtuve las siguientes cifras

temperatura propuesta | voltaje @ ADC

  1. 5oC--------------1.650v
  2. 6 oC--------------1.660v
  3. 80 oC-------------2.480v

humedad propuesta | voltaje @ ADC

  1. 30% (990mV)--------0.098V
  2. 31% (1023mV)-------0.101V
  3. 32% (1056mV)-------0.104V
  4. 33% (1089mV)-------0.107V
  5. 34% (1122mV)-------0.110V
  6. 40% (1300mV)-------0.128V
  7. 90% (2970mV)-------0.29V

    Quiero usar este hardware para los siguientes requisitos

    • Temperatura. medición - 5-80 oC, resolución de 0,5 oC
    • Humedad relativa: 30-90 %, 1 % de resolución

y mis preocupaciones son

  1. ¿Debo cambiar el voltaje de referencia a 2.5V ya que puedo ver que el voltaje máximo a medir es 2.48? O ese voltaje es por un error ya que el hardware original esta diseñado con 1.235V

    • es el voltaje en la entrada ADC (del sensor de temperatura) ajustable para que sea dentro de 1.235 V (por lo que creo que es un mejor rendimiento) mediante algunos cambios menores de hardware (como cambiar un valor de resistencia para cambiar la ganancia del amplificador)
  2. ¿Se pueden lograr mis requisitos con una sola configuración de ADC, ya que me preocupan las cifras aproximadas que obtuve (los valores de entrada de ADC para la temperatura y la humedad no son comparables o eso también es un error?)?

    • para la temperatura que pude medir solo con 1 oC en pasos ya que el gráfico RTD ( para la curva europea, Alpha = .00385, ITS-90 ) se proporcionó con incrementos de 1 oC. Para medir una resolución de 0,5 oC, ¿está bien si divido el cambio de voltaje para un incremento de 1 oC por 2 (asumiendo que la curva es lineal, o no!?)
  3. Cómo decidir de manera eficiente el tiempo de muestreo de ADC (considerando el hecho de que los sensores responden lentamente, las fluctuaciones transitorias de voltaje en la línea, etc.)

  4. Finalmente, ¿cómo se convierten los valores ADC en valores de proceso equivalentes? (Disculpe si el título de la pregunta coincide solo aquí)

    • ¿Por una mesa mirar hacia arriba? (en mi caso, 150 valores (para temperatura) + 60 valores (humedad relativa)) o ¿puedo usar algún cálculo? (En caso afirmativo, ¿cómo obtener una relación lineal entre los valores ADC y los valores del proceso). ¿Qué método es eficiente en términos de precisión?
Uhh, 990mv es 0.99V. 2970mV es 2.97V. Algo está definitivamente mal en su configuración.
@Passerby sí, conozco la conversión entre mV y V. lo que he dado son los valores observados en la entrada ADC para un voltaje en el sensor. el voltaje en el ADC debe ser el mismo que el del sensor a medida que pasa por una serie de amplificadores operacionales, ¿verdad?
Oh, está bien, siempre y cuando se espere que actúe así.
La forma en que he usado para medir un PRT en un PIC es aceptar que necesita volver a linealizar (en código) debido a la ecuación inherente del PRT y luego alimentarlo a través de una resistencia de 3.3V (mismo voltaje usado para ADC interno ref como PIC ADC) amplificarlo luego en la entrada PIC ADC. Su circuito usa la referencia interna PIC y una referencia externa y el error podría ser significativo. Si alimenta el PRT como le sugerí, haga una medición de ADC radiométrica que evite cualquier discrepancia de referencia.

Respuestas (1)

1) Cambie R8/P1 para obtener el rango de voltaje que desea para las temperaturas que desea medir.

2) Configure P2 más alto para hacer coincidir los valores con el rango de su ADC.

3) Establezca un tiempo de muestreo no superior a X veces la constante de tiempo de su sistema, incluidos los sensores. Encuentre un buen número para X dependiendo de los requisitos del sistema. Sin embargo, es posible que desee promediar una serie de muestreos rápidos para reducir el ruido/agregar bits.

4) Una combinación de tabla de búsqueda e interpolación suele funcionar bien. Cree una hoja de Excel para mostrar el error de la aproximación: masajee hasta que funcione para su aplicación.

¿Ha quedado contestada su pregunta?