El valor del sensor de peso de Arduino aumenta/disminuye sin motivo

Conecté un sensor de peso como este a este amplificador de celda de carga basado en hx711 y uso un Arduino (Uno o nano) para obtener las lecturas. No tengo otros componentes en mi circuito y está construido en una placa de prueba.

Todo funciona bien excepto que mis lecturas nunca son perfectamente estables, aumentan o disminuyen con el tiempo. Por ejemplo, en el transcurso de 2 a 3 horas, la lectura pasará de 47,50 gramos a 48,30 gramos y continuará aumentando durante al menos un par de días, donde termino con una diferencia de 3 a 4 gramos (en realidad, nunca esperé lo suficiente para ver donde termina). Por supuesto, esto sucede incluso si no se aplica absolutamente ninguna presión adicional al sensor de peso.

Intenté conectar el sensor a un regulador de voltaje de 5v pero obtuve exactamente el mismo resultado. Parece que la resistencia se acumula en el sensor o que el voltaje aumenta/disminuye en el Arduino, pero no puedo señalar qué genera este comportamiento y qué hacer al respecto.

Cualquier idea es bienvenida ya que he estado luchando para encontrar una solución a esto durante días.

precisiones

Estoy construyendo un comedero automático para gatos que deja caer la cantidad requerida de comida en un cajón. Una vez lleno, el cajón sale del comedero y el gato puede comer. Una vez vacío, el cajón vuelve a entrar hasta la próxima alimentación. El problema es que es bastante difícil predecir cuándo el gato terminará de comer si los datos del sensor siguen aumentando por sí solos. En ocasiones, el gato puede tardar unas horas en comérselo todo. Si cierro el cajón y todavía hay comida adentro, el proceso de tara se ve afectado y después de un par de días, la cantidad de comida que cae está lejos de lo que debería ser.

Aparte de la temperatura deriva está cargado? o simplemente sentado suelto? podría estar fuera de las piezas especificadas con una desviación térmica o de tensión compensada. Verifique la deriva compensada en la escala media y la deriva de ganancia al final del rango
¿Qué es la lectura de escala completa. Sin saber esto, la figura de la deriva no tiene sentido.
Además, muestre el circuito exacto que empleó.
Eche un vistazo a las especificaciones de su enlace y haga los cálculos... probablemente no tan lejos de lo que debería esperar... Repetibilidad %FS 0.05, fluencia (30 min) %.FS 0.05 Efecto de la temperatura en la sensibilidad %FS/10 ℃ 0.05, Efecto de temperatura en cero %FS/10℃ 0.05, Balance cero %FS ±0.5. Luego, también tome en cuenta todos los demás factores, como pérdidas en el circuito, ADC Vref, resolución de ADC, etc.

Respuestas (2)

Después de muchas pruebas, descubrí que el problema provenía de 2 lugares:

1 - la función scale.get_units() proporcionada en la biblioteca hx711 permite especificar el número de muestras para promediar para obtener una lectura más precisa. Cuando cambié el número de muestras de 20 a 1, los valores dejaron de saltar y obtuve una línea más plana. (+- 0,02 gramos entre valores). Probablemente haya un error en la biblioteca ya que el resultado debería haber sido el contrario.

2 - Tenía "ruido" en mi circuito y volver a soldar partes resolvió otra variación intermitente en los valores que experimenté.

Realicé pruebas durante un período de 8 horas y pude notar que las lecturas subían ligeramente, luego bajaban y probablemente volvían a subir si esperaba más tiempo. Las variaciones fueron de 0,8 gramos durante 8 horas, como se muestra aquí:

ingrese la descripción de la imagen aquí

Ahora tomo en cuenta estas variaciones usando software para calcular un valor de deriva.

¡Gracias por toda la ayuda!

No puede esperar una báscula de pesaje de alto rendimiento con un ADC barato y una celda barata. Una escala de grado industrial cuesta> 1k $, aún se desvía con el tiempo. En cualquier aplicación, la báscula tiene que ser tarada. Por ejemplo, una máquina dispensadora de hielo se pone a cero antes de que comience a colocar hielo en una bolsa.
La controladora de peso industrial en movimiento tiene una función de tara automática en cada descarga. Por lo general, hay una ventana de comparación, en su ejemplo, 47 g +/- 5 g y un filtro de paso bajo o promedio móvil, que resta la tara.
Debes describir tu aplicación, pero seguro que no existe una celda tan económica que se quede parada, por lo que tú decides cuándo realizar el proceso de tara.