Arduino Load Cell Scale
Arduino Load Cell Scale
Table of Contents
Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
http://www.instructables.com/id/Arduino-Load-Cell-Scale/
Author:sspence Arduinotronics
Professionally, I'm an IT Engineer (Executive Level) and Electronics Tech. I'm a Amateur Radio Operator (KK4HFJ). I lived off grid, with Solar (PV), Wind,
and veggie oil fueled diesel generator power for 6 years, and design my own off grid power systems.
My goal was to create a programmable scale for weighing objects, parts counting, even directing product flow on a conveyor system.
Red: Excitation +
White: Signal +
Green: Signal -
Black: Excitation -
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.
http://www.instructables.com/id/Arduino-Load-Cell-Scale/
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.
// Load cells are linear. So once you have established two data pairs, you can interpolate the rest.
// 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
// Upload the sketch again, and confirm, that the kilo-reading from the serial output now is correct, using your known loads
float analogValueAverage = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
int analogValue = analogRead(0);
// Is it time to print?
if(millis() > time + timeBetweenReadings){
float load = analogToLoad(analogValueAverage);
Serial.print("analogValue: ");Serial.println(analogValueAverage);
Serial.print(" load: ");Serial.println(load,5);
time = millis();
}
}
// using a custom map-function, because the standard arduino map function only uses int
float load = mapfloat(analogval, analogvalA, analogvalB, loadA, loadB);
return load;
}
float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
http://www.instructables.com/id/Arduino-Load-Cell-Scale/
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Related Instructables
Tiny
Programmer
Hacking A (Photos) by ArduinoISP Self-contained
Keychain Digital Compact 3-in-1 maxhirez Bootloader/Programmer
16-Digit display
Camera for Stripboard Build Your Own Combination - Arduino &
Arduino Control DIYduino with Programmable Shield by Attiny85 by
by smb Integrated LED Matrix by Superbender Panici
Sensor and JamecoElectronics
L298N Motor
Shield by
Superbender
http://www.instructables.com/id/Arduino-Load-Cell-Scale/
Advertisements
http://www.instructables.com/id/Arduino-Load-Cell-Scale/