5 votos

Tratando de entender el voltaje de preescalado para el ADC con el menor error

Me estoy enseñando EE mientras diseño un monitor de batería de 12V DC. Estoy usando un par de sensores de efecto Hall para seguir la corriente de carga y descarga y buscando la mejor manera de medir el voltaje. [

El problema del error con el ADC realmente me tiene asustado. Es esencial que produzca datos significativos. Hay tantas fuentes de error, tanto en mi circuito como en el ADC, que parece como jugar al juego de golpear-topo en la oscuridad. He estado leyendo mucho sobre calibrar la referencia del ADC, pero el primer paso es elegir un método para escalar la entrada.

Mi ventana de voltaje es de 10-15V, específicamente un rango de 10.5V a 14.4V (3.9V). Se me ocurrieron dos enfoques que (con suerte) hacen lo que quiero:

  1. Un diodo Zener de 10V en la entrada inversora de un amplificador operacional diferencial. Rechazando 10V, mi rango se convierte en 0.5V a 4.4V (3.9V) y usa casi todo el rango de mi ADC.
  2. Un divisor de voltaje de 20k : 10k. Escalado a 3x, mi rango se convierte en 3.5V a 4.8V (1.3V)

Quería demostrarme a mí mismo qué método brindaría la mejor granularidad. Ya que también puedo obtener una precisión de 12 bits agregando cuatro lecturas y desplazando el resultado, comparé cuatro posibilidades: (asumiendo que la referencia del ADC es de 5.0V)

  • método 1, 0.5-4.4V @10 bits es 800 pasos: 4.88mV/paso [#3]
  • método 1, 0.5-4.4V @12 bits es 3606 pasos: 1.22mV/paso [#1]
  • método 2, 3.5-4.8V @10 bits es 266 pasos: 14.65mV/paso [#4]
  • método 2, 3.5-4.8V @12 bits es 1065 pasos: 3.66mV/paso [#2]

Mi pregunta es, ¿mis cifras de mV/paso cuentan toda la historia, o hay algún tipo de inconveniente en #2 que no estoy viendo?

5voto

lillq Puntos 4161

El desplazamiento con el diodo zener es de poco uso. Los mejores zeners tienen una tolerancia del 1 %, que equivale a 100 mV para un zener de 10 V. En un ADC de 10 bits esto supone un error de 20 recuentos, en un ADC de 12 bits un error de 82 recuentos. Podrías ajustar el error si puedes medir el voltaje con suficiente precisión, pero hay otros factores. El BZX84-A10 tiene un coeficiente de temperatura de 8 mV/°C, lo que supone un error de 2 recuentos por cada cambio de 1 °C de temperatura para el ADC de 10 bits, y 7 recuentos para el de 12 bits. Parece que está mejor diseñado como termómetro que como medidor de voltaje. Cuando utilices un zener de 10 V, también necesitarás una fuente de alimentación de voltaje más alto.

La divisor de resistencia funcionará mucho mejor. Los resistores también tienen una tolerancia, pero a 25 ¢ un resistor del 0.1 % sigue siendo asequible. (Mejor que el 0.1 % se encarece rápidamente: un 0.05 % cuesta casi 1 dólar). Con una resolución de 10 bits, esto te dará un error de 1 recuento, 4 recuentos en 12 bits. El coeficiente de temperatura será menos problema si ambos resistores son de la misma serie y están cerca uno del otro: dado que el divisor es resistivo, los cambios de resistencia se cancelarán mutuamente.

Los números indican que una resolución mayor de 10 bits es de poco uso; las tolerancias y variaciones de los componentes harán que los bits adicionales sean poco confiables. Sin embargo, algunos bits adicionales pueden ayudar a aumentar la inmunidad al ruido, ya sea promediando una serie de mediciones, o utilizando un ADC sigma-delta, que promedia la señal de entrada de todos modos.

También hay algo más filosófico: siempre queremos lo mejor, pero ¿por qué demonios querrías conocer el voltaje de una batería de 12 V con una precisión mejor que 10 mV? Tendrás dificultades para obtener la resolución requerida, y siempre estarás inseguro acerca de ese último dígito.

El ADS1000 es un ADC de 12 bits económico que funcionará con una única fuente de alimentación de 5 V.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X