¿Conversión A/D de rango automático?

A menudo encuentro que los Arduino A/D de 10 bits carecen de resolución para mis necesidades. Prefiero con mucho los voltímetros de rango automático. ¿Puedo jugar el mismo juego?

¿Puedo dividir mi rango de voltaje objetivo en segmentos para aumentar la resolución? ¿Cómo se protegen las entradas de sobretensiones?

Respuestas (4)

El rango automático generalmente se manejaría agregando un PGA (amplificador de ganancia programable) frente a su convertidor A / D. En algunos casos, para aprovechar al máximo el rango de su convertidor A/D, también agregaría una compensación programable en el PGA. La salida del PGA se sujetaría a través de algunos diodos al rango de voltaje de referencia del convertidor A/D.

Otro esquema es diseñar múltiples amplificadores, cada uno con su propia ganancia y compensación, que muestrean la señal de entrada y la condicionan de una manera particular. Cada uno de estos amplificadores podría configurarse con potenciómetros para permitir la calibración a un rango operativo preciso. Las salidas de estos amplificadores estarían conectadas al convertidor A/D a través de un multiplexor analógico de muchos a uno.

Todavía es posible "calibrar" el esquema con el amplificador PGA con compensación programable alimentando niveles de señal conocidos a través del circuito y luego anotando los ajustes programables necesarios para obtener una salida específica del convertidor A/D. Estos se almacenarían en una memoria no volátil de la MCU que se utilizará para ajustar/escalar las lecturas A/D a los valores adecuados al tomar lecturas de señales reales.

Dependiendo de sus niveles de voltaje, puede hacer esto.

  • Divisor de tensión, donde las resistencias se conmutan con un multiplexor
  • Amplificador de ganancia variable
  • A/D externo con más bits. Esto suele ser lo más fácil y produce buenos resultados. Busque los A/D de estos dispositivos analógicos . Muchos de ellos tienen amplificadores de ganancia programables (PGA) incorporados.

La protección contra sobrevoltaje o voltaje inverso generalmente se realiza con una resistencia o fusible y un diodo o diodo Zener.

Puede agregar una versión amplificada de 10x y 100x de la misma señal (o multiplicar algún otro factor conveniente, como 16x y 256x), y alimentar eso a otras entradas analógicas. El resto es software.

Tenga en cuenta que esos amplificadores deben ser muy precisos, tanto en ganancia como en compensación, pero es posible que pueda hacer algunos trucos comparando las lecturas de valores en diferentes rangos. Use amplificadores operacionales de 5 V para que no tenga que preocuparse por las entradas fuera de rango.

Debe definir cómo le falta resolución: sus señales son demasiado pequeñas (se requiere amplificación), demasiado grandes (se requiere atenuación) o ambas (tal vez escale su entrada logarítmicamente).

Desafortunadamente, el ADC de arduino en sí no es de gran calidad, por lo que no podrá obtener precisión de ADC en términos de señal a ruido en el pin ADC y sus lecturas de salida.

Buscaría una buena solución analógica para acondicionar la señal de entrada: hay algunas buenas notas de ADC de bajo ruido en el sitio web de Linear Tech, busque Jim Williams / Bob Pease, ambos maestros de lo analógico.