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.
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.
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í:
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.
Tony Estuardo EE75
Andy alias
Andy alias
DigitalNinja