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

1

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

Todo funciona bien, excepto que mis lecturas nunca son perfectamente estables, ya sea que aumentan o disminuyen con el tiempo. Por ejemplo, en el transcurso de 2-3 horas, la lectura irá 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-4 gramos (en realidad nunca esperé lo suficiente para ver donde termina). Por supuesto, esto sucede incluso si no hay absolutamente ninguna presión adicional aplicada al sensor de peso.

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

Todas las ideas son bienvenidas, ya que he estado luchando por encontrar una solución a esto durante días.

Precisiones

Estoy construyendo un comedero automático para gatos que coloca la cantidad necesaria de alimentos en un cajón. Una vez lleno, el cajón sale del alimentador y el gato puede comer. Una vez vacío, el cajón vuelve al interior hasta la siguiente alimentación. El problema es que es bastante difícil predecir cuándo terminará de comer el gato si los datos del sensor siguen aumentando por sí mismos. A veces, el gato puede tardar unas horas en comer de todo. Si cierro el cajón y aún queda comida, el proceso de tara no es válido y, después de un par de días, la cantidad de comida que se deja caer está lejos de lo que debería ser.

    
pregunta Pascal longpre

2 respuestas

1

Después de muchos ensayos descubrí que el problema venía de 2 lugares:

1: la función scale.get_units () proporcionada en la biblioteca hx711 permite especificar la cantidad de muestras a 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 inverso.

2 - Tuve "ruido" en mi circuito y las partes de su resolución resolvieron 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 retrocedían si esperaba más. Las variaciones fueron de 0,8 gramos durante 8 horas, como se muestra aquí:

Ahora tengo en cuenta estas variaciones utilizando el software para calcular un valor de deriva.

¡Gracias por toda la ayuda!

    
respondido por el Pascal longpre
0

No puede esperar una báscula de alto rendimiento con un ADC barato y una celda barata. Un costo de escala de grado industrial > 1k $, aún se desplaza con el tiempo. En cualquier aplicación, la escala tiene que ser tarada. Por ejemplo, una máquina dispensadora de hielo se pone a cero antes de comenzar a introducir hielo en una bolsa.
El comprobador 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 47g +/- 5g y un filtro de paso bajo o promedio móvil, que resta la tara.
Debe describir su aplicación, pero seguro que no existe una celda de bajo costo que se quede parada, por lo que depende de usted decidir cuándo realizar el proceso de tara.

    
respondido por el Marko Buršič

Lea otras preguntas en las etiquetas