Hehe yes you are right looking at the sequence of the 1st decimal place in the sequence of measurements: 0, 3, 5, 8, 0, 3, 5, 8, 0, 3, 5, 8. And since the last value is 4.62 setting it to 4.82 will make it even more linear....

It is supposed to be a linear relationship i think, even the opamp i am using costs a bit in order to give linear results under large amplifications, since the orignal voltage are mV and these have been amplified to V having a gain of 1000 and more.

Thank you for the advice, i think I will use it as linear. I will mention all these comments (errors) in my thesis

tnx

You could use two op-amps... it would make the circuit a bit more complex, but you could also use them to filter the signal... if needed.

I think the best is to assume it as a linear load cell... What are the rated limits of the load cell? It is quite normal to see the load cell have some linearity problems in the beginning and end of the scale (like my teacher said: "Linearity is an illusion"). But with a 10 bit ADC, you'll probably get a bigger error from that.

What is the precision of the reading you're planning to have? 1,2,3 decimal places?

Since you have all the gear you need either way, do this. Program the Arduino to use a linear scale. Use one of the equations you found. Then compare readings with the scale you have and different values of sand and plot the results. You can then check if the "non-linearity", is really affecting your measurements or not.

From experience, having an R-squared of 0.9995 is as good as one. Especially considering you're using 10 bits...