Skip to content

Weight sensors and arduino

It is now time to see some direct methods for measuring weight.

FSR Sensor

A cheap and easy method is to use a Force Sensitive Resistor (FSR).
This device varies it's resistance when force is applied. More force applied less resistive becomes.
We will see in detail the FSR sensor in later tutorials.
A quick tip on how to connect the FSR into an arduino board is to treat it like a potentiometer. Using the "Voltage dividers explained" article and by varying R1 (RFSR) you can get different Vout that can be read from an analog pin.
We will be more specific in later articles.
The point here is that FSR are not reliable for weighting measurements.


Another direct option is the load cell. The load cells comes to various weight limits. 300gr-1kg-5kg-10kg-20kg-30kg can be easily found at ebay.
A load cell is a device that has 4 strain gauges (devices that measure the deformation) in a Wheatstone bridge configuration.
A strain gauge is designed to convert mechanical motion into an electronic signal.

A change in resistance is proportional to the strain experienced by the sensor.






Let's take in consideration a 1Kg load cell.
The load cell manufacturer tell us that the load cell has a rated output 1.0946mV/V.
This means that 1,0946 mVout/Vin

So if we drive the loadcell with arduino (5V) we have
Vin = 5V and mVout-max=1,0946*5=5,473mV (full loaded with 1Kg)

So at 1000gr we have a mVout-max=5,473mV
At 1gr we have x mV

So x= 0,005473 mV/gr

By default arduino uses an analog reference of 5V this means that you have a resolution of
5 Volts / 1024 steps = 0 .0049 V/step  = 4.9 mV/step.

As we can see the resolution of arduino is bigger than the resolution needed for the loadcell.

We need a precise amplifier that can increase the electrical signal in order to get 0,005473 mV/gr

So we need a gain like this :

 Gain = (arduino mV/Step) / (loadcell mV/gr)

So we need a Gain=4,9/0,005473=896 for a 5V arduino reference.

If we set an arduino analog reference equal at 1,1V using the command  analogReference(INTERNAL); we need a gain

Gain=1,07421875/0,005473=196 for a 1.1V arduino reference.

Observe that we need a much less gain using an analog reference = 1.1.
So it is recommended to use this option.