Filtrado de ruido en el circuito de galgas extensométricas

Estoy haciendo un circuito de balanza digital y actualmente tengo dificultades para comprender los filtros que se usan comúnmente para reducir el ruido en este tipo de circuitos. Mi celda de carga es un puente completo con una capacidad máxima de 200 kg y una salida nominal de 2 mV/V. Con un voltaje de excitación de 5 V, solo estoy amplificando la mitad de la señal (0-5 mV) usando un amplificador de entrada AD620. Luego utilicé el AD822 como amplificador de diferencia para restar un desplazamiento de 2,47 V y luego lo amplifiqué nuevamente en 4,9 para tener una oscilación de salida de aproximadamente 200 mV a 4,8 V.

Mis preguntas son:

1) ¿El voltaje de margen que he proporcionado para el ADC es lo suficientemente grande o realmente pequeño? Porque he leído que es una regla común proporcionar un margen para su ADC, pero no sé exactamente cuánto, así que me conformé con 200 mV. Estoy usando el ADC incorporado de arduino (resolución de 10 bits)

2) Como puede ver, estoy usando la forma básica de construir un amplificador diferencial y un amplificador no inversor con mi AD822. ¿Hay una manera más efectiva de hacer esto? ¿O hay algo que deba agregar para que mi salida sea más estable y precisa? Debido a que en el amplificador diferencial, en realidad tengo una salida bastante estable, pero con respecto a mi amplificador no inversor, tiene algunas imprecisiones, por ejemplo, en lugar de tener una salida cercana a 196 mV a una entrada de 40 mV (40 mV * ganancia de 4.9 = 196mV), tengo una salida de algo así como 230mV. Y también varía inesperadamente con carga inmóvil.

3) Lo siento por esto, pero básicamente no sé algo sobre el filtrado de ruido. ¿Cuáles son sus recomendaciones para mi circuito sobre el filtrado de ruido? Creo que debo poner algo entre mi celda de carga y el amplificador de entrada AD620, y entre mi amplificador no inversor y el ADC, pero no sé qué son exactamente en este momento.

¡Todo tipo de ayuda es muy apreciada!

FYI, se usaron tapas de desacoplamiento en cada IC pero no se indicaron en el esquema a continuación. (0,1 micro en paralelo con 0,33 micro)

ingrese la descripción de la imagen aquí

Y si esto pudiera ayudar, este es mi código para probar mis valores, en realidad es el código de muestra proporcionado para suavizar los valores analógicos.

  total= total - readings[index];

  readings[index] = analogRead(inputPin);

  total= total + readings[index];

  index = index + 1;

  if (index >= numReadings)

    index = 0;

  average = total / numReadings;

  Serial.println(average); 

  delay(500);

Respuestas (2)

Debe aprovechar al máximo su puente para controlar directamente un amplificador de diferencia. Intentar crear la referencia separada de 2.47 V usando un LM324 será una fuente de error que probablemente matará para siempre el rendimiento de su circuito. Después de todo, hay una buena razón por la que los puentes completos se diseñan en celdas de carga.

No he mirado ninguna hoja de datos para las partes que está usando, pero también parece que su uso de las partes ADxxx para parte del circuito y el LM324 para las referencias será otra fuente de error. Es probable que las partes LM324 y ADxxx estén en ligas completamente diferentes cuando se trata de parámetros de error como los voltajes de compensación.

Otra cosa en que pensar. Cuando termine de pulir su circuito, aún habrá un error en el que la carga cero no es igual a cero. Lo mejor que espera es que el circuito total sea lo más lineal posible en todo su rango utilizable. Luego, toma la lectura que obtiene "sin carga" y resta ese valor de las lecturas que realiza en el momento del pesaje para obtener el peso real. Otro factor a agregar a esto es que a menudo también es necesario usar software para escalar las lecturas al peso real. Esto implica tomar una lectura con el peso completo y almacenarla para usarla para escalar las lecturas posteriores al peso real.

Si no puede lograr una buena linealidad de los circuitos analógicos en todo el rango de uso de peso, entonces puede ser necesario calibrar el sistema adicionalmente en puntos adicionales como el rango medio o al 25 %, 50 % y 75 % para brindar la capacidad de escala las lecturas al peso real haciendo una interpolación lineal sobre secciones más cortas del rango de entrada.

Por último, no descarte la importancia de lo que la variación de temperatura le hará a su sistema.

¿Qué quiere decir con "Debe aprovechar al máximo su puente para controlar directamente un amplificador de diferencia"? Usé el LM324 para proporcionar un voltaje de referencia de 2,5 V a mi AD620 y también para proporcionar 2,47 V para restar a mi salida AD620. ¿Qué parte o IC recomendaría para reemplazar el LM324 para esa tarea en particular?
Cuando se trata de obtener el peso real de mi circuito, todavía no lo estoy probando porque quiero completar el circuito primero. Pero tomaré nota y leeré lo que has dicho. ¡gracias!
@RhonaldReiPahayac: mencionó que está utilizando la mitad de la señal de su medidor de tensión. Inicialmente tomé eso en el sentido de que solo estabas usando la mitad del puente. Pero supongo que en realidad quiso decir que solo está usando la mitad del rango de señal del puente porque tiene la intención de usar solo la mitad del rango de pesaje de la celda de carga.
sí, eso es definitivamente lo que quiero decir. Tengo la intención de usar solo la parte de 0-100 kg de la celda de carga en lugar de la escala completa de 0-200 kg

No miré todos los detalles, pero en mi humilde opinión, el enfoque es bastante incorrecto: está utilizando tres amplificadores operacionales diferentes y toneladas de resistencias, cada una de las cuales agrega algo de ruido y errores. Déjalo todo y conecta directamente tu salida AD620 a la entrada ADC de un 328 (NO un "Arduino" con tantas cosas inútiles), con los cables más cortos posibles. el único componente valioso para agregar es alguna celda RC (por ejemplo, 1k y .1uF) como filtro de paso bajo.

entonces lo que obtiene de la lectura de ADC es 512 + valor de ganancia *. Prácticamente lo mejor que jamás tendrás. Luego, debe eliminar el desplazamiento y ganar dentro de su boceto. Para eso está el micro, ¿no?

La "Referencia" en el AD620 parece atada al suelo en la hoja de datos. ¿Por qué querrías jugar con electrónica física muy imprecisa (¡1%!) obteniendo milivoltios de ruido en todas partes cuando puedes obtener una resolución de 0.000006% usando flotadores dentro de tu Arduino?

Y nunca piense que no eliminar los 2.5V significa que perdió un poco de precisión. Eso es ruido de todos modos. Por el contrario, obtuvo una garantía bastante clara de que cuando lee 0 o 1023, su circuito está roto ;-) Y tomó la distancia necesaria de las no linealidades inherentes al hecho de que está cerca de GND o VCC.

Al responder preguntas, en el futuro puede ser útil tratar de responder todas las preguntas de los usuarios. electronics.stackexchange.com/help/how-to-answer Gracias