saturation of HX711

Hi,
I have posted similar topic but not the same details. Here I have a project that is to measure the strain using HX711, wheatstone bridge circuit and the arduino. What I have connected is giving me a saturated output at the serial monitoring of -2.5V. while when I use a multimeter to measure the output of the wheatstone it gives me -1.98V
Here is my circuit :
bridgecircuit.PNG

And, your question is?

Oh, what I mean is that I can't understand what is the problem and why is there a difference between the multimeter reading and the ARDUINO reading. Is it due to the HX711 or what I could do to get the actual output as the multimeter shows.

Maybe has to do with the input impedance of your multimeter.

Do you have a link to your module?

FYI

https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide?_ga=2.259656073.2041616102.1567392174-731812223.1494602506

wvmarle:
Maybe has to do with the input impedance of your multimeter.

So you think it is due to difference impedance between the ARDUINO and the multimeter and the system is working fine?

larryd:
Do you have a link to your module?

FYI

Load Cell Amplifier HX711 Breakout Hookup Guide - learn.sparkfun.com

here is my module link.

I will check if there is difference.

No, between the HX711 and your multimeter. The HX711 is designed specifically to measure Wheatstone bridges, a multimeter not.

aa_ra18:
What I have connected is giving me a saturated output at the serial monitoring of -2.5V. while when I use a multimeter to measure the output of the wheatstone it gives me -1.98V

That makes absolutely no sense (to me).

The Wheatstone bridge (load cell) is powered from E+ (about 4.25volt) and E- (ground).
What is important is bridge ballance (between A+ and A-).
The HX711 measures the imballance between those points.
You can also measure that with a DMM, and it should be millivolts (almost zero volts).
The HX711 outputs digital data, that can't be measured with a DMM.
Leo..

Wawa:
That makes absolutely no sense (to me).

The Wheatstone bridge (load cell) is powered from E+ (about 4.25volt) and E- (ground).
What is important is bridge ballance (between A+ and A-).
The HX711 measures the imballance between those points.
You can also measure that with a DMM, and it should be millivolts (almost zero volts).
The HX711 outputs digital data, that can’t be measured with a DMM.
Leo…

Ok I got it. But I have tried the same circuits (wheatstone with HX711) with 4 fixed resistor of 120 ohm, what should gives us around 0 V output since almost fixed values . but it gives me -2.35V (.15V from saturation) on the ARDUINO serial monitor.

aa_ra18:
Ok I got it. But I have tried the same circuits (wheatstone with HX711) with 4 fixed resistor of 120 ohm, what should gives us around 0 V output since almost fixed values . but it gives me -2.35V (.15V from saturation) on the ARDUINO serial monitor.

The resistors need to be well matched to ballance the bridge (< 1%).

The HX711 outputs a digital value, not a voltage.
There must be someting in your secret code that converts data to voltage.
Leo…

this is the equation I use to get the output voltage
float voltage=((scale.read()/16777216.0)*5.00);
because I am using channel A which gives 128 gain and 24 bit ADC output.
and the output should be from +-2.5V as the module data sheet tells. and the result as I wrote in #8.

aa_ra18:
Ok I got it. But I have tried the same circuits (wheatstone with HX711) with 4 fixed resistor of 120 ohm, what should gives us around 0 V output since almost fixed values . but it gives me -2.35V (.15V from saturation) on the ARDUINO serial monitor.

That value is indeed odd, as you shouldn’t be able to get more than about +/- 2.12V there (mind: VE+ != Vcc, and your Vcc itself is very likely not 5V, but somewhere close to that value - could be as low as 4.6V if running from USB power). It does mean your HX711 is wrong, your calculation is wrong (that 5.0 value is wrong for sure), your undisclosed scale.read() function is wrong, or one of the 120Ω resistors is not connected properly. There may still be other causes of course.

aa_ra18:
Ok I got it. But I have tried the same circuits (wheatstone with HX711) with 4 fixed resistor of 120 ohm, what should gives us around 0 V output since almost fixed values . but it gives me -2.35V (.15V from saturation) on the ARDUINO serial monitor.

What is the voltage at the Wheatstone bridge with all 120R instead of the sensors?
That is between A+ and A-.

Can you post your code please?

Can you also disconnect the Wheatstone bridge completely, and short A+ to A- terminals on the HX711.

Thanks.. Tom... :slight_smile:

wvmarle:
That value is indeed odd, as you shouldn’t be able to get more than about +/- 2.12V there (mind: VE+ != Vcc, and your Vcc itself is very likely not 5V, but somewhere close to that value - could be as low as 4.6V if running from USB power). It does mean your HX711 is wrong, your calculation is wrong (that 5.0 value is wrong for sure), your undisclosed scale.read() function is wrong, or one of the 120Ω resistors is not connected properly. There may still be other causes of course.

you are right my calculation is not right but it does not matter since the main problem is that the read.scale() gives me saturated output( -8388606) of the sensor where it should not reach this value.

TomGeorge:
What is the voltage at the Wheatstone bridge with all 120R instead of the sensors?
That is between A+ and A-.

Can you post your code please?

Can you also disconnect the Wheatstone bridge completely, and short A+ to A- terminals on the HX711.

Thanks… Tom… :slight_smile:

multimeter gives 0.03V-0.04V, the arduino gives 2.5V although wrong equation.

Can you also disconnect the Wheatstone bridge completely, and short A+ to A- terminals on the HX711.

ARDUINO gives 0V.
here is my code

#include "HX711.h"
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 7;
const int LOADCELL_SCK_PIN = 4;
HX711 scale;
void setup() {
 // put your setup code here, to run once:
 Serial.begin(9600);
 scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
 Serial.println("LABEL,DATA,DATE,TIME,Sens. Read,Voltage,Deformation,Strain");
  }
void loop() {
  scale.tare();
  float reading =scale.read();
  float voltage=((scale.read()/16777216.000)*5.00);

  Serial.print("DATA,DATE,TIME,");
  Serial.print(reading);
  Serial.print(",");
  Serial.println(voltage);


 Serial.print("reading:\t");
 Serial.print(reading);
 Serial.print("\t voltage:");
 Serial.print(voltage);
 Serial.println("V");

    delay(500);
}

aa_ra18:
you are right my calculation is not right but it does not matter since the main problem is that the read.scale() gives me saturated output( -8388606) of the sensor where it should not reach this value.

It will in case of a loose wire.

So please do post clear, well focused and well lit images of your complete setup. That can be quite revealing.

aa_ra18:
multimeter gives 0.03V-0.04V, the arduino gives 2.5V although wrong equation.

A broken HX711 is another possibility. Do try swapping it out with another one.

Well, the same circuit were giving me useful data for output and I have changed the wires twice before. I start to think that the same module I use is blown up and is not working. I will try get pictures of the circuit ASAP I cannot do it right now.

Hi, I got another HX711 but the same problem happened again, saturated output as shown above.

I have come up with idea of analyzing my circuit as a simple Wheatstone bridge by getting the voltage over each leg of the circuit as shown in the circuit diagram down. I fed the circuit directly by the 5V ARDUINO supply and got the output from the shown points of V_c and V_d then the subtraction of them. As similiar as the analyzing of the Wheatstone bridge circuit and I got what it shows in the serial monitor which agrees with the voltage output of the digital multimeter I have of 0.04V (polarity is just a matter of changing the wires connection). Please see attachments I don’t know how to post them here.

by getting this I have a thought that the HX711 is not suitable for this application. If this conclusion is right, would anyone please gives me a help to get over this and simplify the work of getting two outputs then subtracting them because I would need to amplify both legs then subtract and the other stuff to get the strain values its self. I need amplifier since strain needs more sensitive reading than 10 bit of the ARDUINO and one leg amplified surely is not enough.

I really appreciate your time help me thank you a lot

  • Please see attachments. I dont know how to post the pictures inside the reply itself.

circuit.PNG

wheatstone analyzes.PNG

So your DMM shows 30-40mV imballance, and you know the HX711 clips at ±20mV with a gain of 128.

Do you power the bridge with 5volt? The HX711 has a 4.25volt supply (E+) for ratiometric stability.

What are you really trying to do (resistors/pots instead of load cell).
You can't use the instrumentation amp input for anything else that brings the input voltage outside the common mode range.
Leo..

Hi,
Can you serial print the RAW count from the ADC please?

Thanks.. Tom.. :slight_smile:

Wawa:
So your DMM shows 30-40mV imballance, and you know the HX711 clips at ±20mV with a gain of 128.

Do you power the bridge with 5volt? The HX711 has a 4.25volt supply (E+) for ratiometric stability.

What are you really trying to do (resistors/pots instead of load cell).
You can't use the instrumentation amp input for anything else that brings the input voltage outside the common mode range.
Leo..

clips means it becomes zero isn't it? why the saturation then.
I powered the bridge with ARDUINO directly. I powered the HX711 with the same but I think it gives 3.8V at the E+ E- potential.

the common mode range is VDD-1.2 = 5-1.2=3.8 which's what actually there. and the output now between the A+ A- is 0.35 exactly but the output on the serial monitor is saturating?