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