Measuring several Load Scales with HX711 amps

Hey there,

I´m currently measuring several loadscales with a HX711, with this library (GitHub - bogde/HX711: An Arduino library to interface the Avia Semiconductor HX711 24-Bit Analog-to-Digital Converter (ADC) for Weight Scales.) and an Arduino Mega 2560. I want to send the values in serial as fast as possible.

With a baudrate of 19200 I´m measuring 120ms in max msp for one value which is quiet a lot...
Same rate with the Arduino Serial Monitor.
Exchanged the cable but had no effect.

How can I make this faster?

T

#include "HX711.h"

// Two Load Cells, Common Clock and Individual Data I/O

HX711 scale;

void setup() {
  Serial.begin(19200);
  Serial.println("HX711 Dual L/C Demo");

 // Serial.println("Initializing the scale");
  // parameter "gain" is ommited; the default value 128 is used by the library
  // HX711.DOUT	- pin #A1
  // HX711.PD_SCK	- pin #A0
  scale.begin(A1, A0);

 // Serial.println("Before setting up the scale:");
 // Serial.print("read: \t\t");
//  Serial.println(scale.read());			// print a raw reading from the ADC

 // Serial.print("read average: \t\t");
 // Serial.println(scale.read_average(20));  	// print the average of 20 readings from the ADC

 // Serial.print("get value: \t\t");
 // Serial.println(scale.get_value(5));		// print the average of 5 readings from the ADC minus the tare weight (not set yet)

 // Serial.print("get units: \t\t");
 // Serial.println(scale.get_units(5), 1);	// print the average of 5 readings from the ADC minus tare weight (not set) divided
						// by the SCALE parameter (not set yet)

  scale.set_scale(0.f);   // this value is obtained by calibrating the scale with known weights; see the README for details
  scale.tare();				        // reset the scale to 0

 // Serial.println("After setting up the scale:");

 // Serial.print("read: \t\t");
 // Serial.println(scale.read());                 // print a raw reading from the ADC

 // Serial.print("read average: \t\t");
 // Serial.println(scale.read_average(20));       // print the average of 20 readings from the ADC

 // Serial.print("get value: \t\t");
 // Serial.println(scale.get_value(5));		// print the average of 5 readings from the ADC minus the tare weight, set with tare()

 // Serial.print("get units: \t\t");
 // Serial.println(scale.get_units(5), 1);        // print the average of 5 readings from the ADC minus tare weight, divided
						// by the SCALE parameter set with set_scale

 // Serial.println("Readings:");
}

void loop() {
  scale.begin(A1, A0);
  
//  Serial.print("read LC1:\t");
//  Serial.println(scale.get_units(), 1);
  Serial.println(scale.read()); 
  Serial.print(" ");
  
//  Serial.print("\t| LC1 avg:\t");
//  Serial.println(scale.get_units(10), 1);

  scale.begin(A2, A0);
//  
////  Serial.print("read LC2:\t");
////  Serial.println(scale.get_units(), 1);
  Serial.println(scale.read()); 
  Serial.print(" ");
  
//  Serial.print("\t| LC2 avg:\t");
//  Serial.println(scale.get_units(10), 1);

  scale.begin(A1, A0);
  
//  Serial.print("read LC1:\t");
//  Serial.println(scale.get_units(), 1);
  Serial.println(scale.read()); 
  Serial.print(" ");
  
//  Serial.print("\t| LC1 avg:\t");
//  Serial.println(scale.get_units(10), 1);

  scale.begin(A2, A0);
//  
////  Serial.print("read LC2:\t");
////  Serial.println(scale.get_units(), 1);
  Serial.println(scale.read()); 
  Serial.print(" ");
  
//  Serial.print("\t| LC2 avg:\t");
//  Serial.println(scale.get_units(10), 1);

  scale.begin(A1, A0);
  
//  Serial.print("read LC1:\t");
//  Serial.println(scale.get_units(), 1);
  Serial.println(scale.read()); 
  Serial.print(" ");
  
//  Serial.print("\t| LC1 avg:\t");
//  Serial.println(scale.get_units(10), 1);

  scale.begin(A2, A0);
//  
////  Serial.print("read LC2:\t");
////  Serial.println(scale.get_units(), 1);
  Serial.println(scale.read()); 
  Serial.print(" ");
  
//  Serial.print("\t| LC2 avg:\t");
//  Serial.println(scale.get_units(10), 1);





////////////////////////////////////////////


//  scale.begin(A3, A0);
////  
//////  Serial.print("read LC3:\t");
//////  Serial.println(scale.get_units(), 1);
//   Serial.println(scale.read()); 
//   Serial.print(" ");
   
////  Serial.print("\t| LC3 avg:\t");
////  Serial.println(scale.get_units(10), 1);
//  

//  scale.power_down();			        // put the ADC in sleep mode
  delay(10);                        // doesnt affect anything
//  scale.power_up();
}

HX711_reading_Six_L_Cs.ino (3.79 KB)

Please show your code, enclosed in code tags </> for easy reading.

If the ADC conversion rate is 120ms, you can not get (new) values faster than that.