Weight / Load Cell
Interfacing HX711 + Load Cell Weight / Load Cell with Arduino Uno
What is the HX711 + Load Cell?
HX711 + Load Cell practical reference
The HX711 is a 24-bit precision analog-to-digital converter (ADC) chip designed specifically for weigh-scale and industrial control applications. It amplifies and digitizes the tiny differential voltage produced by a load cell's Wheatstone bridge, turning raw strain-gauge signals into a clean digital reading a microcontroller can use. Paired with a bar-type or button load cell, it's the standard combo for building a DIY digital kitchen scale, a bench scale, or a weight-triggered trigger for automation projects.
Key specifications
- ADC resolution: 24-bit
- Operating voltage: 2.6V–5.5V (module regulator allows 5V logic and supply)
- Operating current: ~1.5 mA active, <1 µA in power-down
- Sample rate: 10 SPS or 80 SPS, selectable via the RATE pin
- Input channels: Channel A (gain 128 or 64), Channel B (gain 32)
- Interface: Simple 2-wire synchronous serial (DT/SCK, bit-banged — no dedicated hardware peripheral needed)
- Load cell type: Any 4-wire Wheatstone-bridge load cell (bar, S-type, button, or half-bridge pair)
- Typical load cell range: 1 kg, 5 kg, 10 kg, 20 kg, or 50 kg bar cells are the most common hobbyist sizes
Pinout and connection notes
Most breakout boards label the load cell terminal block as E+/E-/A+/A- and expect the standard 4-wire color code (red=E+, black=E-, white=A+, green=A-); some load cells swap green/white, so if readings are unstable or negative, try swapping A+ and A-. Channel B (B+/B-) is present on the HX711 IC itself but is rarely broken out on cheap modules.
- VCC: Power, 2.6–5.5V DC
- GND: Ground
- DT: Data output — serial data line, read by the microcontroller
- SCK: Serial clock input — clocks out each data bit and also selects gain/channel via pulse count
- E+: Load cell excitation positive — wire to the load cell's red wire
- E-: Load cell excitation negative — wire to the load cell's black wire
- A+: Channel A positive input — wire to the load cell's white wire
- A-: Channel A negative input — wire to the load cell's green wire
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.
Setting Up HX711 + Load Cell with Arduino Uno
Library
HX711 by Bogdan Necula (bogde)
Arduino IDE → Library Manager → search "HX711" by Bogdan Necula → Install
Wiring
| Component pin | Arduino Uno pin | Note |
|---|---|---|
| VCC | 5V | |
| GND | GND | |
| DT | D3 | |
| SCK | D2 | |
| E+ | Load cell red wire | Load cell excitation |
| E- | Load cell black wire | |
| A+ | Load cell white wire | Channel A — highest-gain, most common choice |
| A- | Load cell green wire |
Swipe sideways to see every column →
- This sketch reads raw units, not calibrated grams — every load cell + HX711 pair needs its own calibration factor. Tare with nothing on the scale, place a known weight, then divide the raw reading by that weight to get your factor, and use scale.set_scale(factor) before scale.get_units() in your real project.
- Load cell wiring colors (red/black/white/green) are a near-universal convention on the cheap bar-style cells sold with HX711 boards, but always double-check yours — a few odd batches swap them.
- HX711 is a bit-banged protocol, not a bus standard — DT/SCK can go on any two digital pins, no special peripheral required.
Related Components
Related Guides & Projects
Arduino Uno R4 Minima Pinout: Every GPIO, ADC, DAC, and Op-Amp Pin Explained
A complete Arduino Uno R4 Minima pinout reference — digital I/O, ADC, DAC, op-amp, CAN, dual UART, and exactly what it leaves out compared to the WiFi variant.
Mastering PWM on Arduino: Dimming LEDs and Controlling Motors
Understand what PWM actually is on Arduino, dim an LED smoothly, and safely control a DC motor's speed with a driver chip -- plus the mistakes (like wiring a motor straight to a pin) that damage boards.
4-Digit 7-Segment Counter with TM1637 & Arduino
Drive a TM1637-based 4-digit 7-segment display with Arduino Uno to show a real-time up/down counter, elapsed timer, and scrolling text. Covers library setup, brightness control, and custom segment mapping.
Arduino Uno R4 Minima vs WiFi: Which One Should You Choose?
Same processor, same memory, different price. Here's what the WiFi variant's extra hardware actually gets you, and when the Minima is the smarter buy.