GARRF Logo

Gopalkrishna Advanced Rural Research Foundation

(Dr. APJ Abdul Kalam Research Zero Funding Initiative)

India
Target Max Load
3.00 kg
Scale Max (+10%)
3.30 kg
Excitation Voltage
5.00 V
Bridge Sensitivity
2.0 mV/V
Nominal Resistance
1000.0 Ω
HX711 Gain
128x (Ch A)

Apply Weight Load to Strain Gauge Beam

Drag slider to test force correlation against bridge mV and 24-bit ADC output.

Applied Weight: 0.000 kg (0.00 N)
0.00 kg (Tare) Target Max: 3.00 kg Scale Max (+10%): 3.30 kg
Quick Presets:

Internal Wheatstone Bridge Schematic

4 Strain Gauges

Mechanical bending creates micro-strain: Tension arms ($R_1, R_3$) increase in resistance while compression arms ($R_2, R_4$) decrease.

E+ (5V VCC - RED) E- (GND - BLACK) A- (WHITE) A+ (GREEN) V_OUT (A+ - A-) 0.000 mV R1 (Tension) 1000.00 Ω R2 (Compress) 1000.00 Ω R4 (Compress) 1000.00 Ω R3 (Tension) 1000.00 Ω
Bridge Differential Formula:
VOUT = VEX × [ R3 / (R3 + R4) − R2 / (R1 + R2) ]

HX711 Module Pipeline

24-Bit ADC

Transforming millivolt strain signals into high-precision 24-bit digital counts.

Stage 1: Raw Bridge Output 0.000 mV
Span 0 to +10.0 mV
Stage 2: Low-Noise PGA (128x Gain) 0.000 V
Amplified V 128x Boost
Stage 3: 24-Bit ΔΣ ADC 8,388,608
Total Steps 16,777,216
Stage 4: Calibrated Weight 0.000 kg
Formula (ADC - Tare) / Scale
10-bit Arduino analogRead() vs 24-bit HX711:

Standard Arduino 10-bit ADC provides 4.88 mV steps ($5\text{V}/1024$). Since full 3 kg load outputs only $10\text{ mV}$, direct `analogRead()` yields only ~2 total steps over the entire range! The HX711 provides 24-bit resolution for precise gram-level measurements.

Hardware Wiring Guide: Load Cell $\rightarrow$ HX711 $\rightarrow$ Arduino

Connection reference for mapping physical load cell wires to HX711 and Arduino pins.

5V Power Recommended

1. Load Cell $\rightarrow$ HX711 (Input)

Wire Color Function HX711 Pin
Red Excitation + E+ / VCC
Black Excitation - E- / GND
Green Signal + A+
White Signal - A-

2. HX711 $\rightarrow$ Arduino Uno (Output)

HX711 Pin Arduino Pin Notes
VCC 5V (or 3.3V) Power Pin
GND GND Ground
DT (DOUT) Digital Pin 2 Serial Data Line
SCK (CLK) Digital Pin 3 Serial Clock Line

3. Arduino C++ Starter Code

#include "HX711.h"
#define DOUT_PIN 2
#define CLK_PIN  3

HX711 scale;

void setup() {
  Serial.begin(9600);
  scale.begin(DOUT_PIN, CLK_PIN);
  scale.set_scale(420.0); // Calibration factor
  scale.tare(); // Zero scale
}

void loop() {
  Serial.print("Weight: ");
  Serial.print(scale.get_units(5), 3);
  Serial.println(" kg");
}

Live Signal Correlation Chart

Real-time trace of bridge mV output vs raw 24-bit ADC counts

Digital Scale Readout

Calibrated weight output

0.000 Kilograms 0% Load
Target Max: 3.00 kg

Laboratory Correlation Data Logger

Record trial data points to verify gauge factor linearity and calibration stability.

# Trial Applied Weight (kg) Bridge Voltage VOUT (mV) Amplified V (128x) Raw 24-Bit ADC Count Calculated Weight (kg) Error (%)
No data points logged yet. Set a weight on the slider above and click "Log Trial Point".

Student Laboratory Help & Experimentation Manual

Gopalkrishna Advanced Rural Research Foundation Guidance Sheet

1. How to Use This Interactive Simulation First

Before assembling physical hardware, study the virtual lab to understand force-to-voltage relationships:

  1. Set Target Maximum Load: Click "Setup Max Load" in top menu and enter your intended maximum weight capacity (e.g., 3.0 kg or custom up to 5.0 kg).
  2. Observe +10% Headroom Margin: Notice how the simulator automatically adds $+10\%$ scale headroom (e.g., 3.3 kg max) so you can test overload safety limits without clipping digital bounds.
  3. Drag the Applied Weight Slider: Observe how mechanical pressure bends the Wheatstone bridge, changing strain gauge resistances (R1, R2, R3, R4) and generating micro-volt differential outputs (V_OUT).
  4. Follow the HX711 Signal Path: Trace the signal through the 128x Programmable Gain Amplifier (PGA) up to the 24-bit Delta-Sigma ADC count (8,388,608 to 16,777,215).
  5. Log Experimental Trials: Click "Log Trial Point" at various weight positions to build a linear calibration curve and export the CSV log for report writing.

2. Understanding Physical Load Correlation (Load ↔ ADC Integer)

Students often ask: "Can a serial reading on my computer or smartphone screen be correlated back to physical load, or does a physical load produce a unique reading?" Both directions are directly correlated due to gauge factor linearity!

Direction A: Calibration Step

Applying a known physical weight ($W_{known}$) creates a predictable strain shift, outputting a specific raw 24-bit ADC integer ($ADC_{raw}$).

Calibration Factor = (ADC_raw - Tare_Baseline) / Weight_known
Direction B: Measurement Step

Once calibrated, placing an unknown object yields a raw integer reading that your program instantly converts to exact weight.

Weight_calc = (ADC_observed - Tare_Baseline) / Calibration_Factor

3. How to Build & Customize Arduino Code for Real Load Cells

To build a physical scale with your 3 kg or 5 kg load cell and HX711 board, follow these modifications in Arduino IDE:

  • Install the official "HX711 Arduino Library" by Bogde via Arduino Library Manager.
  • Connect HX711 DT to Arduino Pin 2 and SCK to Pin 3.
  • Perform zeroing (scale.tare()) with an empty weighing platform.
  • Adjust the calibration_factor float parameter until displayed output matches your reference test mass.
#include "HX711.h"

// 1. DEFINE DIGITAL PINS CONNECTED TO HX711
#define DOUT_PIN 2  // Data Out pin from HX711
#define CLK_PIN  3  // Serial Clock pin from HX711

HX711 scale;

// 2. ADJUST THIS CALIBRATION FACTOR DURING CALIBRATION
// Increase if output reading is higher than actual mass
// Decrease if output reading is lower than actual mass
float calibration_factor = 420.0; 

void setup() {
  Serial.begin(9600);
  Serial.println("Initializing Gopalkrishna Foundation Scale...");

  scale.begin(DOUT_PIN, CLK_PIN);
  
  // Reset scale to zero (Tare out empty platform weight)
  scale.set_scale();
  scale.tare(); 
  
  Serial.println("Zero completed. Place known weight to verify correlation.");
}

void loop() {
  // Apply calibration factor to convert raw ADC counts to kilograms
  scale.set_scale(calibration_factor);

  Serial.print("Correlated Weight: ");
  Serial.print(scale.get_units(5), 3); // Average 5 readings for stability
  Serial.println(" kg");

  delay(300);
}
GARRF Educational Manual • Dr. APJ Abdul Kalam Initiative

Load Cell Workbench Setup

Configure your target maximum weight load (up to 5.0 kg)

kg
Selected Choice Max: 3.00 kg
+10% Overload Margin: +0.30 kg
Scale Full Range (Max): 3.30 kg