

The HX711 is a precision 24-bit analog-to-digital converter (ADC) designed for high-accuracy weight measurement and industrial control applications. Manufactured by Arduino under the part ID HX711-Module, this component integrates a low-noise programmable gain amplifier (PGA) to interface directly with load cells, making it ideal for building digital weighing scales. Its compact design and high resolution make it a popular choice for applications requiring precise weight measurements.








The HX711 is optimized for high precision and low noise, making it suitable for sensitive measurements. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Supply Voltage | 2.6V to 5.5V |
| Operating Current | ~1.5mA |
| Standby Current | <1µA |
| ADC Resolution | 24-bit |
| Input Channels | 2 (Channel A and Channel B) |
| PGA Gain | 32, 64, or 128 (programmable) |
| Data Rate | 10Hz or 80Hz |
| Operating Temperature | -40°C to +85°C |
The HX711 module has a total of 4 pins for interfacing with microcontrollers and power supply. Below is the pinout:
| Pin Name | Pin Type | Description |
|---|---|---|
| VCC | Power | Power supply input (2.6V to 5.5V). Typically connected to 3.3V or 5V. |
| GND | Power | Ground connection. |
| DT (Data) | Digital I/O | Serial data output. Connects to a microcontroller's digital input pin. |
| SCK (Clock) | Digital I/O | Serial clock input. Used to synchronize data communication with the microcontroller. |
The HX711 is straightforward to use with microcontrollers like the Arduino UNO. Below are the steps to integrate it into a circuit and use it effectively:
Below is an example Arduino sketch to read data from the HX711 using the popular HX711 library:
// Include the HX711 library
#include "HX711.h"
// Define the pins connected to the HX711 module
#define DT_PIN 3 // Data pin connected to Arduino digital pin 3
#define SCK_PIN 2 // Clock pin connected to Arduino digital pin 2
// Create an HX711 object
HX711 scale;
void setup() {
Serial.begin(9600); // Initialize serial communication for debugging
scale.begin(DT_PIN, SCK_PIN); // Initialize the HX711 with the defined pins
// Optional: Set the gain (default is 128)
scale.set_gain(128);
Serial.println("HX711 initialized. Place weight on the scale.");
}
void loop() {
if (scale.is_ready()) { // Check if the HX711 is ready to send data
long reading = scale.get_units(); // Get the weight reading
Serial.print("Weight: ");
Serial.print(reading);
Serial.println(" units");
} else {
Serial.println("HX711 not ready. Check connections.");
}
delay(500); // Wait for 500ms before the next reading
}
No Data Output
Unstable or Noisy Readings
Incorrect Weight Readings
HX711 Not Ready
Q1: Can the HX711 be used with a 3.3V microcontroller?
Yes, the HX711 operates with a supply voltage as low as 2.6V, making it compatible with 3.3V systems.
Q2: How do I calibrate the HX711?
Use a known weight to determine the scale factor. Modify the code to divide the raw ADC value by this factor to get accurate weight readings.
Q3: Can I use both input channels (A and B) simultaneously?
Yes, but note that Channel A has a programmable gain (128 or 64), while Channel B has a fixed gain of 32. Channel A is typically used for higher precision measurements.
Q4: What is the maximum weight the HX711 can measure?
The maximum weight depends on the load cell used. The HX711 itself does not impose a weight limit but provides high-resolution ADC readings for the connected load cell.
By following this documentation, you can effectively integrate the HX711 into your projects and achieve precise weight measurements.