Over the years, many RobotShop customers have asked us about the easiest way to interface a load cell with an Arduino board so they can get accurate weight measurements. Instruments like load cells provide small signal values and need to be amplified for processing, so without additional electronics, these sensors cannot and should not be connected directly to an Arduino's I/O pins. Arduino boards like the UNO have a 10 bit ADC, which means that the resolution of the analog input pins are 5V/1024 ≈ 4.9mV. For this reason, variations less than 4.9mV will not be recognized by the Arduino board without the appropriate amplification and filtering. The two common approaches for interfacing a load cell with an Arduino are :
Luckily, there is a new option for those seeking a plug and play solution to avoid extra wiring and coding: the Strain Gauge / Load Cell Amplifier Shield. This board makes interfacing an Arduino and an instrumentation amplifier significantly easier. This stackable shield can be used with various low output sensors like load cells. It's a low cost solution for precise amplification of measurements especially for robotics, multichannel systems, medical instrumentation, industrial process control and more. The Load Cell Shield features an AD8426 dual channel Instrumentation amplifier. The gain produced by the AD8426 amplifier ranges from 1 to 1000 depending on the GAIN resistor value. The output voltage reference of each channel can be adjusted with the two onboard potentiometers. The shield has also a low-pass 2nd order Bessel filter at 1000Hz for both channels.
A load cell usually has 4 wires, but it's important to check the wiring for the unit you have:
The parts needed for connecting the load cell to the shield :
Solder the F/F jumper wires to the Load Cell wires. To avoid mixing the wires when connecting the load cell, you can choose the same color wires as those of the load cell :
Add heat shrink over the soldered areas:
Connect the load cell to the Load Cell Amplifier Shield:
Stack the Load Cell Amplifier Shield on top of the Arduino board (in our case, a Lynxmotion BotBoarduino):
The Load Cell Shield uses analog pins A0 and A1 for Strain 1 and Strain 2 inputs respectively. The white connectors on the board are 4 pin Molex connectors with 0.1" spacing. There are two modifications per channel that can be done to adjust the output voltage of the shield described below:
The gain of the amplification per channel is dependent on the Gain1 / Gain2 resistors. The AD8426 default gain is 1 without a gain resistor. The standard gain resistor value of the shield is 100 Ohm (for each channel) for a gain of 495. These resistors can be replaced depending on the user's application with the appropriate ones. The gain can be calculated by using the following gain equation (from AD8426 datasheet) : Rgain= 49400/(Gain-1)
The reference voltage feature is used to offset the output signal to a mid-supply voltage to be used with a single power supply ADC. The reference voltage can be set using the onboard potentiometers associated with each channel.
This Arduino Sample Code reads analog pin 0 (Strain 1) and analog pin 1 (Strain 2) so that the load cells can be calibrated by linear interpolation.
If you wish to use 3 or 4 load cells and need to stack two Wheatstone bridge amplifier shields, please see the following post: Arduino Tutorials - How to Stack Wheatstone Bridge Shields