I am trying to understand how load cell works and which one to choose for my project. For example lets say I use this load cell.

  1. List of properties in case the link won't work:

    Weight Capacity Max 5 kg

    Zero Balance ± 75 g

    Cell Non-Linearity Max 2.5 g

    Rated Output 1 mV/V

    Rated Output Error Max ± 150 μV/V

    Supply Voltage Max 5 V DC

Let's say I give 5 V to it from an Arduino [I know it will be a lower voltage but I am trying to make it simple for my own understanding].

  • How can I know what will be the output/kg? i.e what will be the voltage output for 100 gram, 1kg, 5kg?

  • What is the minimum difference I can notice? I mean how much I need to increase the weight in order to get a noitceable increase in voltage output?

  • \$\begingroup\$ Did you read the Primer? In it, in the Calibration Section is the following formula : Expected Force or Weight = K * (Measured mV/V - Offset). It further states "Where K is gain value that will change depending on what unit of force or weight you want to measure. Since the offset varies between individual load cells, it’s necessary to measure it for each sensor." \$\endgroup\$
    – Tyler
    Nov 29 '16 at 16:32

Strain gauges are small precious metal conductors usually stretched to measure strain in a bridge configuration. There is good detail here: http://www.ni.com/white-paper/3642/en/ ....and here: http://www.omega.com/toc_asp/frameset.html?book=Pressure&file=strain-gage-position_REF

Every strain gauge is individually calibrated since it is affected by the strain (in itself) when glued to a surface providing the measurement lever. Phidgets seem to provide extensive details on the units they manufacture.

Since the strain gauge is an analog sensor the resolution is essentially infinite. For example if the strain gauge is glued to a thin metal strip, then the strip will deflect with very small applied forces/weight. It's only when you digitize the output you get a digital resolution implied (well explained by Phidget).


There are a lot of factors which should be considered when working with load cells. But let's start with the load cell itself.

The output sensitivity and the error are usually given in full-scale as a function of the supply voltage. In case of the one you have linked it means that the load cell max voltage change can be calculated as follows:

$$ V_{max} = rated\;output \times supply\; voltage$$

$$ V_{max} = \frac{1\;mV}{V} \times 5\;V = 5\; mV $$

So with a 5 kg load, the output will be 5 mV. The error can be calculated similarly:

$$ V_{maxerror} = ± \frac{150\;\mu V}{V} \times 5\;V = 750\;\mu V = 0.75\;mV $$

So the error with 5 kg is 0.75 mV. That means with 5 kg load, in theory the output can be anything between 4.25 mV and 5.75 mV. Note that the error might be smaller, it is a worst case value.

Theoretically you can say that if the output is 5 mV at 5 kg, then it should be 1 mV at 1 kg. But unfotunately it won't be because of the non-lineraity, drift and other errors. (The non-linearity means that the resolution of the load cell is not exactly \$ \large \frac{1\;kg}{1\;mV} \$)

But it is completely unnecessary to talk about output voltages right now, because these voltages are too small for the Arduino's ADC (and for other microcontrollers as well). First, they have to be amplified with an instrumentation amplifier into a measurable range. Here is an article about how to choose an instrumentation amplifier for a load cell application. You can also buy pre-made ones as well.

Now, let's assume that the 0 - 5 mV range is now amplified in the range of 0 - 5 V, so with 5 kg load the output will be 5 V (±error). This is a range that the Arduino can measure without any difficulties. Now to start answering you questions.

What is the minimum difference I can notice?

It depends on the resolution of the ADC you are measuring the voltage with. The Arduino's ADC has a 10 bit resolution and 5 V analog voltage reference, so the minimal detectable step will be:

$$ V_{step} = \frac{5\;V}{2^{10} - 1} = \frac{5\;V}{1023} = 4.89\;mV$$

How much is it in weight? Can't say for sure because the errors are there and the errors are amplified as well. (Also there can be external noise sources as well) But you know that it is the smallest voltage difference that can be measured. (Note that the supply voltage has some error, the ADC has some error as well so it will be probably a bit worse than this.)

How can I know what will be the output/kg? i.e what will be the voltage output for 100 gram, 1kg, 5kg?

As it had been told in the other answer you have to perform calibration to know exactly your scale's transfer factor, which will be used to convert votlage values into gram or kilogram. You have to do measurements with reference weights. Measure the output with known weights, for example 50 g, 100 g, 150 g, 200 g, 250 g, and draw up a charateristic, then determine how much is the voltage change between each step. This will give you a value \$ \large \frac{X\;mV}{50\;g} \$, if X is quite bigger than 4.89 mV you can calibrate in 10 g steps and see if it is still good and the values are distinguishable (if it is smaller then 4.89 mV then a larger step should be used). So you can decide 100 % from the measured values that it was 10 g or 20 g.

Of course you can (and should) perform averaging in software to reduce error.

A rather long reading but very detailed is: A Reference Design for High-Performance, Low-Cost Weigh Scales, I strongly recommend it. Also read about Wheatstone-bridges.

(I have used coins as reference weights, their value is easily accessible and they were accurate enough for me.)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.