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

Me estoy enseñando a mí mismo EE mientras diseño un monitor de batería de 12 V CC. Estoy usando un par de sensores de efecto Hall para rastrear la corriente de carga y carga y buscando la mejor manera de medir el voltaje. [Un ATmega32u4 tomará lecturas sucesivas con el ADC, calculará un promedio de 1 segundo y lo pasará a través de USB para registro y análisis].

El problema del error con 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 se siente como jugar al topo en la oscuridad. Estoy leyendo mucho sobre cómo 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 a 15 V, específicamente un rango de 10,5 V a 14,4 V (3,9 V). Se me ocurrieron dos enfoques que (con suerte) hacen lo que quiero:

  1. Un diodo Zener de 10 V 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. Reducido 3 veces, mi rango se convierte en 3,5 V a 4,8 V (1,3 V)

Quería probarme a mí mismo qué método generaría la mejor granularidad. Dado que también puedo obtener una precisión de 12 bits al agregar cuatro lecturas y cambiar el resultado, comparé cuatro posibilidades: (suponiendo que la referencia de ADC es de 5,0 V)

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

Mi pregunta es, ¿mis cifras de mV/paso cuentan la historia completa, o hay algún tipo de inconveniente en el n. ° 2 que no veo?

Pregunta bien redactada. Pero, ¿buscó en la columna RELACIONADO cuando creó su pregunta? Sé que hay una preocupación de compensación en su pregunta, pero aparte de eso, hay 3 duplicados que abordan esencialmente el mismo tema, todos con respuestas útiles: consulte la Pregunta 1 , la Pregunta 2 o la Pregunta 3.
Si bien esas preguntas cubren el mismo tema, mi pregunta se refería específicamente a si mis cálculos de granularidad eran precisos y contaban la historia completa. Edité para mayor claridad.

Respuestas (1)

El desplazamiento con el zener es de poca utilidad. Los mejores zeners tienen una tolerancia del 1 %, que es de 100 mV para un zener de 10 V. En un ADC de 10 bits, este es un error de 20 cuentas, en un ADC de 12 bits, un error de 82 cuentas. Puede eliminar el error si puede medir el voltaje con la precisión suficiente, pero hay otros factores. El BZX84-A10 tiene un coeficiente de temperatura de 8 mV/°C, lo que da un error de conteo de 2 por cambio de temperatura en °C para el ADC de 10 bits y 7 conteos para el de 12 bits. Parece que es más adecuado como termómetro que como medidor de voltaje. Cuando use un zener de 10 V, también necesitará una fuente de alimentación de mayor voltaje.

El divisor de resistencia lo hará mucho mejor. Las resistencias también tienen una tolerancia, pero a 25 ¢ una resistencia de 0,1 % sigue siendo asequible. (Es mejor que el 0,1 % se vuelva caro rápidamente: un 0,05 % cuesta casi 1 dólar). A una resolución de 10 bits, eso le dará un error de 1 conteo, 4 conteos a 12 bits. El coeficiente de temperatura será un problema menor si ambas resistencias son de la misma serie y se colocan cerca una de la otra: dado que el divisor es radiométrico, los cambios de resistencia se cancelarán entre sí.

Los números indican que una resolución superior a 10 bits es de poca utilidad; las tolerancias y variaciones de los componentes harán que la broca adicional no sea confiable. Sin embargo, algunos bits adicionales pueden ayudar a aumentar la inmunidad al ruido al promediar una serie de mediciones o al usar un ADC sigma-delta, que promedia la señal de entrada de todos modos.

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

El ADS1000 es un ADC de 12 bits de bajo costo que funcionará con un solo suministro de 5 V.

¡Gran respuesta! ADS1114 puede venir completo en un módulo de pcb en eBay que puede ser más accesible para principiantes. También tiene su propia referencia de voltaje y no es proporcional al suministro a diferencia del ADS1000, lo que puede ser un beneficio en este caso.