¿Cómo suavizar los datos analógicos?

Estoy tratando de leer los datos de las celdas de carga, pero estos valores fluctúan mucho. Tengo un ADC ADS1230 y lo configuré con una ganancia interna de 128. Cuatro celdas de carga de medio puente están conectadas en una configuración de puente y la salida del puente se alimenta al ADC. PERO no hay forma de que pueda obtener una lectura estable. Sería genial saber lo que me estoy perdiendo aquí. ¿Sería EMI la causa aquí? Cualquier sugerencia sería apreciada.

Respuestas (2)

Es probable que su entrada sea simplemente bastante ruidosa. Aplicar alguna forma de promedio aquí es su mejor opción.

La solución más simple es tomar n muestras y promediarlas juntas para producir un resultado. Esto divide su tasa de muestreo por el número de muestras que utiliza por intervalo de promedio.

Otra opción es utilizar un filtro digital; el más simple de implementar es una respuesta de impulso infinito de primer orden, y se parece a esto:

accumulator = 0.9 * accumulator + input

¿ Dónde inputestá la lectura de ADC? Cada vez que actualiza el filtro con una nueva lectura, está tomando un promedio ponderado de los datos nuevos y todos los datos antiguos. Para obtener el resultado promediado, divida accumulatorpor el inverso de la ponderación, en este caso, 0,1, así:

value = accumulator / (1 - 0.9)

El valor de ponderación controla el promedio que obtiene y la rapidez con la que convergen los resultados cuando hay un cambio en la entrada; en este caso, cada valor depende en un 90 % del estado anterior y solo en un 10 % de la nueva lectura.

Si elige ponderaciones que son potencias de 2, por ejemplo, 1/2, 1/4, etc., puede ejecutar esto de manera muy eficiente en un microcontrolador sin necesidad de costosas operaciones de división. Por ejemplo, al elegir un valor de ponderación de 1/16 (= 6,25 %), puede calcular su acumulador de esta manera:

accumulator = accumulator - (accumulator >> 4) + value

y obtener el resultado como este:

result = accumulator >> 4

En primer lugar, debe filtrar la señal analógica a una frecuencia de esquina significativamente más baja que la frecuencia de muestreo del ADC para evitar el alias de ruido de alta frecuencia en la conversión del ADC (que no se puede eliminar en el lado digital).

La naturaleza exacta del filtro depende del ruido/interferencia, la frecuencia de muestreo del ADC y el tipo. Por ejemplo, un sigma-delta permite un filtro de un solo polo, pero es posible que necesite un filtro de alto orden para un sistema significativamente ruidoso con un ADC SAR.

El filtrado digital se logra fácilmente con un filtro digital del tipo:

y = ( 1 α ) X + α y
donde y es la salida, x es la entrada y alfa es un valor como 0.9 o 0.99 (cuanto más cerca de uno, más filtrado obtiene).

Actualmente estoy usando el filtro RC. Según su información, qué tipo de condensadores debo usar para el filtrado de paso bajo. Además, ¿qué valores?