Load cell + hx711 = drifting value

Hi there,

I'm using a load cell (TAL220 10kg) and a HX711 with an Arduino to measure weight.

I'm using the "HX711.h" Arduino library to read the values.

Over time, the value drifts away and the device needs to be tare'd again. In my case, it drifts from 0.5 to 0.9 in a matter of minutes.

I need it to not drift - I assumed that a load cell worked in a way where I could tare it and let it run for weeks and still get an accurate weight (or at least a stable value).

Is the drift because of some software rounding thing in the library, or is it just not realistic to expect a load cell to not drift and it's simply not within the laws of physics on how they work?

I'm hoping it's software, otherwise it's back to the drawing board with my project (it needs to stay on all the time and detect

Unfortunately as much as many want load cells to be accurate they have a couple inherent flaws which require a lot of extra electronics and engineering to over come and thus become expensive. To get load cells to work accurately typically cost hundreds to thousands of dollars.

The two main flaws, offset drift and load hysteresis.

The problem is a mechanical thing mostly caused by temperature and the mechanical properties of the materials of load cells. The type you have are aluminum, with temperature the metal structure expands and contracts and bending moment changes. In theory the whetstone bridge deals with this, but it isn't enough and you get offset drift over time. Keep the temperature stable and your measurement will be more stable, but it will still drift some.

Load hysteresis is where the same load(lets say 5kg) measured from min load(0kg) to the 5kg load compared to 10kg load down to 5kg will return a different result. This is due to the mechanical properties of the load cell, effectively a memory. Therefore outputs from load cells can report curves in their range response to load, typical a positive curve on the upwards load and negative on the downwards load. Combine this with offset drift and results can lead to relative high error.

Ways around the hysteresis is to use a load cell roughly one third of the range you require, the negative is that you lose sensitivity to load. This can limit the load on load off difference which is more stable, but you lose sensitively to small changes.

You could try adding a temperature sensor, plot different temperatures to load. Use varying loads as different load will have possible different offset effects. It gets messy.

There is reasons why accurate scales costs a lot.

Maybe you calculate an average which can lead to drifting very quickly.