reading 3 x HX711 load cells

Hello guys,

i would like to read 3 x HX711 load cells.
i have conntected:
Cell 1: DOUT1 to D3, CLK1 to D2
Cell 2: DOUT2 to D5, CLK1 to D4
Cell 3: DOUT3 to D7, CLK1 to D6

and GND and VCC combined to arduino GND and VCC.

im running the HX711 example sketch which i modifed to 3 sensors:

#include "HX711.h"

#define calibration_factor -7050.0 //This value is obtained using the SparkFun_HX711_Calibration sketch
#define DOUT3  7
#define CLK3   6
#define DOUT2  5
#define CLK2   4
#define DOUT1  3
#define CLK1   2

HX711 scale1;
HX711 scale2;
HX711 scale3;

void setup() {
  Serial.begin(115200);
  Serial.println("HX711 scale1 demo");

  scale1.begin(DOUT1, CLK1);
  scale2.begin(DOUT2, CLK2);
  scale3.begin(DOUT3, CLK3);
  scale1.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
  scale2.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
  scale3.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
  scale1.tare(); //Assuming there is no weight on the scale1 at start up, reset the scale1 to 0
  scale3.tare(); //Assuming there is no weight on the scale1 at start up, reset the scale1 to 0
  scale3.tare(); //Assuming there is no weight on the scale1 at start up, reset the scale1 to 0

  Serial.println("Readings:");
}

void loop() {
  Serial.print("Reading 1: ");
  Serial.print(scale1.get_units() / 2.20462, 1); //scale1.get_units() returns a float
  Serial.print(" Kgs"); //You can change this to kg but you'll need to refactor the calibration_factor
  Serial.print(" ");
  Serial.print("Reading 2: ");
  Serial.print(scale2.get_units() / 2.20462, 1); //scale1.get_units() returns a float
  Serial.print(" Kgs"); //You can change this to kg but you'll need to refactor the calibration_factor
  Serial.print(" ");
  Serial.print("Reading 3: ");
  Serial.print(scale3.get_units() / 2.20462, 1); //scale1.get_units() returns a float
  Serial.print(" Kgs"); //You can change this to kg but you'll need to refactor the calibration_factor
  Serial.println();
}

as a result, ouput 1 and output 3 seem to work fine but output 2 is maxed out (17.8kg at rest) and will only lower its load reading from that point if load is applied.

any ideas how to solve this?
thanks.

This is how the 3 are connected, each to its own digital pins.

Found my own bug in the .tare function..
was missing sensor 2 obviously :slight_smile: