Summary of Arduino Load Cell / Scale
This article details building a programmable Arduino scale using a load cell from an Accuteck postal scale and an INA125P amplifier. The author explains wire color coding, connects the components to read analog values, and provides code for linear interpolation to calculate weight based on two known reference points. A new version using an HX711 module is also mentioned as an alternative.
Parts used in the Arduino Load Cell Scale:
- Arduino board
- Load cell (from Accuteck W-8260-86W Postal Scale)
- INA125P amplifier
- 10 ohm resistor
From the minds at http://arduinotronics.blogspot.com/
Important Update!
Since so many people were having problems with the INA125P, we now have a new and improved version that uses the Hx711 24bit ADC amplifier module. http://arduinotronics.blogspot.com/2015/06/arduino-hx711-digital-scale.html My goal was to create a programmable scale for weighing objects, parts counting, even directing product flow on a conveyor system.
I needed a load cell, a Arduino, and an amplifier.
Step 1: The Load Cell
On this load cell (from a Accuteck W-8260-86W Postal Scale) the 4 wires coming from the load cell are:
Red: Excitation +
White: Signal +
Green: Signal –
Black: Excitation –
This matches the GSE / NCI / Sensotec wiring scheme.
http://www.controlweigh.com/loadcell_colors.htm
I disconnected the 4 wires from the control board in the scale, so they would be available for the next step.
Step 2: The Amplifier
To increase the output of the load cell so that the Arduino can read it on an analog input, we will need a INA125P amplifier and a 10 ohm resistor. Connect to the Arduino as indicated on the attached schematic.
Data Sheet: http://www.ti.com/lit/ds/symlink/ina125.pdf
Step 3: The Code
// Arduino as load cell amplifier
// by Christian Liljedahl
// christian.liljedahl.dk
// Load cells are linear. So once you have established two data pairs, you can interpolate the rest.
// Step 1: Upload this sketch to your Arduino board
// You need two loads of well know weight. In this example A = 10 kg. B = 30 kg
// Put on load A
// read the analog value showing (this is analogvalA)
// put on load B
// read the analog value B
// Enter you own analog values here
float loadA = 10; // kg
int analogvalA = 200; // analog reading taken with load A on the load cell
float loadB = 30; // kg
int analogvalB = 600; // analog reading taken with load B on the load cell
// Upload the sketch again, and confirm, that the kilo-reading from the serial output now is correct, using your known loads
float analogValueAverage = 0;
// How often do we do readings?
long time = 0; //
int timeBetweenReadings = 200; // We want a reading every 200 ms;
void setup() {
Serial.begin(9600);
Read more: Arduino Load Cell / Scale
- What wires are connected to the load cell?
The four wires are Red for Excitation plus, White for Signal plus, Green for Signal minus, and Black for Excitation minus. - How do I increase the output of the load cell?
You need an INA125P amplifier and a 10 ohm resistor to boost the signal for the Arduino analog input. - Can I use this method for weighing objects and parts counting?
Yes, the goal was to create a programmable scale for weighing objects, parts counting, and directing product flow. - How many known loads are required to calibrate the system?
You need two loads of well-known weight to establish data pairs for linear interpolation. - Does the article recommend a specific alternative to the INA125P?
Yes, a new version using the Hx711 24bit ADC amplifier module is suggested due to problems with the INA125P. - What is the recommended frequency for taking readings in the code?
The code is set to take a reading every 200 milliseconds.
