How to measure millivolt using HX711?

Thread Starter

anoopak

Joined Nov 24, 2023
36
I hooked up HX711 with Arduino and the ADC counts at zero input is OK [Count ~300]. But when i connect a millivolt input [10mV, 15mV] generated using a voltage divider, HX711 suspends operation and serial monitor outputs a message 'HX711 not found' .
When i measured the voltage across the input pins using a multimeter, I am getting a voltage value which is greater than expected voltage from the voltage divider [80mV instead of 15mV] .Its like HX711 is modifying input voltage while measuring!
What CAN be the issue? Is HX711 is not designed for measuring such differential voltages ?
[Note:I am sure that individual components including connecting cables are working fine.]

Connections:
HX711 vcc= Arduino 5V
HX711 gnd= Arduino GND
HX711 DT= Arduino D2
HX711 SCK= Arduino D3
HX711 A+= DC Signal+
HX711 A-= DC Signal-
HX711 B+= Not connected
HX711 B-= Not connected
HX711 E+= Not connected
HX711 E-= Not connected


Voltage divider ckt:
5V/3.3V-------680KOhm---------2kohm------GND
. HX711A+ and HX711A- is connected across 2kOhm [and GND]. Voltage divider is energized with a separate adapter.

Arduino code:

#include "HX711.h"
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;
HX711 scale;
void setup() {
Serial.begin(9600);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
}
void loop() {
if (scale.is_ready()) {
long reading = scale.read();
Serial.print("HX711 reading = ");
Serial.println(reading);
} else {
Serial.println("HX711 not found.");
}
delay(1000);

}
 

ericgibbs

Joined Jan 29, 2010
18,869
hi anoo,
The HX711 expects a differential input, by connecting one input to 0v, you lose the CMV,
So you will get inaccurate readings
E

Clip from d/s:

Analog Inputs
Channel A differential input is designed to
interface directly with a bridge sensor’s
differential output. It can be programmed with a
gain of 128 or 64. The large gains are needed to
accommodate the small output signal from the
sensor. When 5V supply is used at the AVDD pin,
these gains correspond to a full-scale differential
input voltage of ±20mV or ±40mV respectively.
Channel B differential input has a fixed gain of
32. The full-scale input voltage range is ±80mV,
when 5V supply is used at the AVDD pin.
 

Thread Starter

anoopak

Joined Nov 24, 2023
36
hi anoo,
The HX711 expects a differential input, by connecting one input to 0v, you lose the CMV,
So you will get inaccurate readings
E

Clip from d/s:

Analog Inputs
Channel A differential input is designed to
interface directly with a bridge sensor’s
differential output. It can be programmed with a
gain of 128 or 64. The large gains are needed to
accommodate the small output signal from the
sensor. When 5V supply is used at the AVDD pin,
these gains correspond to a full-scale differential
input voltage of ±20mV or ±40mV respectively.
Channel B differential input has a fixed gain of
32. The full-scale input voltage range is ±80mV,
when 5V supply is used at the AVDD pin.
I made a circuit by generating a differential voltage from a Wheatstone bridge. But I observed one issue in HX711 [ As well as in ADS1115 module] which is explained below:
I was measuring differential output from wheatstone bridge ckt [~10.5mV] using ADs1115 /HX711 module. Everything works perfect if excitation voltage of bridge is derived from Arduino itself[3.3V]. But this circuit fails to read bridge output [Absurd readings]when bridge is energized from a separate external supply[3.3V]. What can be the issue? I tried after connecting GND of arduino and external p.s. But no change in result.
I am attaching the circuit diagramIMG-20231209-WA0030.jpg
 

Thread Starter

anoopak

Joined Nov 24, 2023
36
What type of supply is the external? Might be noisy.
I had tried different types of supplies, Breadboard power supply, AC-DC adapter, battery etc... All yields the same results.
Major issue is not with noise. When i Use external power supply , Instead of expected value at bridge output, I am getting higher millivolt reading at bridge output when in connect ADC module[measured using MULTIMETER] . This is like ADC is modifying the bridge output! Whether this is some reference voltage/GND related problem ? Whether i have to connect any shunt resistor at bridge output?
 
Last edited:

ericgibbs

Joined Jan 29, 2010
18,869
Everything works perfect if excitation voltage of bridge is derived from Arduino itself[3.3V]. But this circuit fails to read bridge output [Absurd readings]when bridge is energized from a separate external supply[3.3V].
Hi anoo.
The Hx711 ADC section is ratio metric, that means the Vsuppy for the Bridge must be powered from the HX711 module in order to get the correct conversion.
E
EG57_ 1354.png
 

Attachments

Thread Starter

anoopak

Joined Nov 24, 2023
36
I would need to see the actual circuit of how you have the external supply connected to the bridge. Is it on a breadboard, any photos?
Why do you need to use an external supply?
For actual application, Wheatstone bridge has to be energized with 55mA constant current [350ohm, 19V]. So I cannot use HX711 or Arduino to power the bridge. It has to be an external power supply.
The photo of circuit is attached
Red and green wire pair- External supply
White and black pair20231210_110601.jpg- input to ads1115
Other wires are for VCc, Gnd, scl, dat
 

sghioto

Joined Dec 31, 2017
5,391
For actual application, Wheatstone bridge has to be energized with 55mA constant current [350ohm, 19V].
Why is that, what is the application? I don't see a ground return on the bridge to the HX711. What are the values of the resistors in the bridge?
 

ericgibbs

Joined Jan 29, 2010
18,869
hi sgh,
If he connects the bridge ground to the HX711, that will put a Common mode Voltage of 9.5V onto an IC rated VDD 5.5v

E
 

ericgibbs

Joined Jan 29, 2010
18,869
For actual application, Wheatstone bridge has to be energized with 55mA constant current [350ohm, 19V].
hi sg,
The above is what he stated.

I am pointing out to him, not to connect the 0v of the 19v supply, else he could damage his HX711

E
 

Thread Starter

anoopak

Joined Nov 24, 2023
36
Why is that, what is the application? I don't see a ground return on the bridge to the HX711. What are the values of the resistors in the bridge?
55mA is used for Ohmic heating of resistor in bridge. Resistors acts as both heaters and resistance sensors. Please note that In the test circuit, which I had explained in the beginning , I haven't used actual voltage and bridge resistances . I had made only a simple circuit to get a feel of working of ADC. Here all the resistances are of 2k and bridge is energized by an external supply of 3.3V. I haven't connected GND of this supply and GND of logic ckt [Arduino]. Is this GNd-GND connection necessary for measuring differential voltage from bridge? Please refer the circuit diagram posted at the beginning.
 

Thread Starter

anoopak

Joined Nov 24, 2023
36
hi sgh,
If he connects the bridge ground to the HX711, that will put a Common mode Voltage of 9.5V onto an IC rated VDD 5.5v

E
Yes I confirmed that the issues were with handling high Common mode voltage and floating voltages. Based on the tips from this forum I am able to converge to following conclusions:
1. HX711 cannot be used for my case because this module do ratiometric measurements
2.I have introduced an Op Amp [AD620] between ADS1115 and the millivolt source i.e.Wheatstone bridge .This has solved floating voltage problem. This also avoid exposure of ADS1115 to higher common mode voltage [~10V in my case].
I am able to build the circuit successfully [Circuit diagram attached]
Thank you.ckt.jpg
 
Top