Introduction: Measuring Weight With a Load Cell
This post will cover how to set up, troubleshoot, and re-arrange a circuit for measuring weights under 1kg.
An ARD2-2151 costs €9.50 and can be bought at:
What was used:
-A 1Kg Load Cell (ARD2-2151)
-two op amplifiers
Step 1: About the Load Cell
Has a very small output and thus needs to be amplified with an instrumental amplifier (a total gain of 500 was used for this system)
A DC source of 12V is used to power the load cell.
operates in temperatures from -20 degrees Celsius to 60 degrees Celsius, making it unusable for the project we had in mind.
Step 2: Building the Circuit
The load cell has a 12V input, and the output will be connected to a instrumentation amplifier to increase the output.
The load cell has two outputs, a minus and a positive output, the difference of these will be proportional to the weight.
The amplifiers requires a +15V and -15V connection.
The output of the amplifier is connected to an Arduino which needs a 5V connection, where the analog values will be read in and re scaled to a weight output.
Step 3: Differential Op-amp
A diff amp is used to amplify the difference of the plus and minus voltage output from the load cell.
the gain is determined by R2/R
R needs to be atleast 50K ohms as the output impedence of the load cell is 1k and the two 50k resistors would give a 1% error which is exceptable
the output ranges from 0 to 120 mV this is too small and needs to be amped more, a larger gain could be used on the diff amp or an noninverting amplifier could be added
Step 4: Gain Amp
A non-inverting amp is used because the diff amp only outputs 120mV
the analog input to the arduino ranges from 0 to 5v so our gain will be around 40 to get as close as possible to that range because that would increase the sensitivity of our system.
the gain is determined by R2/R1
Step 5: Trouble Shooting
The 15V supply to the op-amp, 10V to the Load cell and the 5V to the Arduino must have a common ground.
(all 0v values need to be connected together.)
A Voltmeter can be used to make sure that the voltage drops after every resistor to help ensure there are no short circuits.
If results are varying and inconsistent the wires used can be tested by using the voltmeter to measure the resistance of the wire, if the resistance says "offline" it means there is infinite resistance and the wire has an open circuit and cannot be used. Wires should be less than 10 ohms.
resistors have a tolerance, which means they could have an error, the resistance values can be checked with a voltmeter if the resistor is removed from the circuit.
smaller resistors could be added in series or parallel to get ideal resistance values.
1/Rparallel =1/r1 + 1/r2
Step 6: Results From Each Step
The output from the load cell is very small and needs to be amplified.
The small output means the system is prone to interference.
Our system was designed around the weights we had available which was 500g,
the gain amp's gain resistance is inversely proportional to the range of our system
Step 7: Arduino Results
The relationship in these results are linear and gives us a formula to find a y value ( DU from Arduino) for a given x value(input weight).
This formula and the output will be given to the arduino to calculate the weight output for the load cell.
The amplifier has an offset of 300DU, this could be removed by inserting a balanced wheatstone bridge before the load cell voltage is amplified. which would provide the circuit with more sensitivity.
Step 8: Code
The code used in this experiment is attached above.
To decide which pin should be used to read the weight:
pinMode (A0, INPUT);
The sensitivity (x-coefficient in excel) and offset (the constant in the excel eqn) are declared:
Each time the system is set up the offset should be updated to the current DU at 0g
float offset = 309.71;
the excel formula is then applied to the analog input
and printed out to the serial monitor
Step 9: Comparing Final Output to the Input
The final output given from the Arduino accurately calculated the output weight.
Average error of 1%
This error is caused by different DU read at the same weight when the test is repeated.
This system is not suitable for using in our project due to the temperature range limitations.
This circuit would work for weights up to 500g, as 5v is the max value into the arduino, if the gain resistance is halved the system would work up to 1kg.
The system has a large offset but is still accurate and notices changes of 0.4g.