HX711 module and weight sensor very slow

Hello people,

I am using a HX711 module and a bridge weight with arduino UNO.
This is the module: http://www.banggood.com/HX711-Weighing-Pressure-Sensor-24-Bit-Precision-AD-Module-For-Arduino-p-918228.html

I am testing with the example code of the HX711 library:

#include <Hx711.h>
Hx711 scale(A2, A3);

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print(scale.getGram(), 1);
  Serial.println(" g");
  //delay(200);
}

The problem is the serial monitor give me a response each 2 second, even comment the delay code.
Do you have any idea why works of this way?
Any solution? I need it works faster.

Thanks

Did you read the datasheet (HX711) ?
C programming example:

 sbit ADDO = P1^5; 
sbit ADSK = P0^0; 
unsigned long ReadCount(void){ 
 unsigned long Count; 
 unsigned char i; 
 ADDO=1; 
 ADSK=0; 
 Count=0; 
 while(ADDO); 
 for (i=0;i<24;i++){ 
 ADSK=1; 
 Count=Count<<1; 
 ADSK=0; 
 if(ADDO) Count++; 
 } 
 ADSK=1; 
 Count=Count^0x800000; 
 ADSK=0; 
 return(Count); 
}

I suggest you read the datasheet.

hx711_english.pdf (160 KB)

Thanks for your answer Raschemmel,

I read the data sheet, but I didn’t understand very well if I have to use the RATE pin or the XI pin to change the behavior I need.
The HX711 module I use, don’t let me to use these pins, because the module have not extension for these pins, so I ask if do you now any way to configurate the HX to work faster or what should I do.

Sorry for my ignorance about this.

Thanks,

Post vendor link or datasheet for module you are using.
Rate pin-15 must be HIGH (+5v) for 80 hz rate, PERIOD.

http://www.dfrobot.com/wiki/index.php/Weight_Sensor_Module_V1

I don't know why, but when I connect pin 16 (DVDD=4.75v) to pin 15 (RATE) to set RATE = 1, arduino turn off ...... Maybe I was wrong, but at datasheet y could read I must set RATE = DVDD to set 80hz

Could you confirm it is correct?

Regards,

I don't know how you can do that. You have a breakout bd that only has certains pins brought out to pads and Rate is not one of them. How can you connect it to Pin-16 when pin-15 is shorted to GND by a trace on the PCB . When you connect 15 to 16 you are putting a direct short across the +5V and GND.

Correct, sorry

So with this module, I can't change the period ....

The HX711 only has two speeds: 10Hz or 80Hz. You're saying your getting .5Hz so something is amiss.

What particular HX711 library are you using? Provide a link?

http://www.dfrobot.com/image/data/SEN0160/Arduino%20sample%20code.zip

Now I've tried with this library: https://github.com/bogde/HX711 And it works better, it has more functions and more setting

Had the same problems with 2Hz instead of 10Hz output. And after playing around with direct port manipulation etc I found in the datasheet:

Output settling time (1) typical 400ms.

?1?Settling time refers to the time from power up, reset, input channel change and gain change to valid stable output data

So if using both channels, expect around 2Hz with RATE=0.

Any improvement on hx711 library ? Is anyone can reach 80hz ?

Shouldn't it read 0.5Hz compared to 10/80Hz? Hz = 1/s, so every 2s means 0.5Hz. And 10Hz should result in one value every 0.1s. The settling time given in the specs states that at 10Hz operation mode it takes 400ms to receive a constant signal. At 80Hz it only takes 50ms. To me this means that at 80Hz the internal sampling is done at the given frequency. So I think the issue must be based on the used lib. And I guess raschemmel is right by hinting that the RATE pin is grounded by default because the vendor has given this application to be the reference schematic.

Hi Please send me the circuit(load cell with hx711 circuit)

BTW: Be aware that the call to scale.getGram() will sample 32 times before resulting the average value in grams.

Locate the "HX711.h" file in your hard drive. Open with wordpad. Change

"long averageValue(byte times = 25)"

to

"long averageValue(byte times = 5)".

Now I am getting data every 0.4 sec or at 2.5Hz.

Hope it helps.

To increase the speed of the output / results, try using a different library for the HX711. But rememver that the keywords and code may vary a bit depending on the library. (eg. getGram / get_value / getData)

If you use the break out board from sparkfun, PIN 15 ist tied to ground and so RATE is set to 10Hz. See https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/SparkFun_HX711_Load_Cell_v11.pdf. PIN 15 is already connected to VCC by a 10kOhm resistor. You must cut the line on the backside of the PCB at SJ2 (RATE). See the fourth picture on https://www.sparkfun.com/products/13879 ( https://cdn.sparkfun.com//assets/parts/1/1/5/1/0/13879-03.jpg )