Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » Weighing Scale with 40KG Load Cell HX711 & Arduino
Arduino Projects

Weighing Scale with 40KG Load Cell HX711 & Arduino

Mamtaz AlamBy Mamtaz AlamUpdated:August 21, 202211 Comments6 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
40KG Load Cell Arduino
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

In this project we will make a Weighing Scale using 40KG Load Cell, HX711 24 bit Amplifier Module & Arduino. The load cell will be capable of measuring any weight up to 40KG.


Overview

In this Arduino Tutorial we are interfacing 40Kg load cell to the Arduino using the HX711 Load cell amplifier module. HX711 is a precision 24-bit analog to digital converter (ADC) designed for weighing scales and industrial control applications to interface directly with a bridge sensor. The HX711 load cell amplifier is used to get measurable data out from a load cell and strain gauge.

The electronic weighing machine uses a load cell to measure the weight produced by the load, here most load cells are following the method of a strain gauge, Which converts the pressure (force) into an electrical signal, these load cells have four strain gauges that are hooked up in a Wheatstone bridge formation.

We will make a Weighing Scale Machine which can measure weights up to higher-value like 40KG. We need to calibrate the load cell and find the calibration factor. Once the calibration is done, we can include that factor in our code. Thus this will make the scale precise and accurate. The greater is the mass the greater the error. So we will try to remove the error from the weighing scale. We will finally display the measured weight in the 16×2 I2C LCD Display. We will use a push button to reset the weight value to zero.

You can follow our previous post in case you want to Weight Measuring Scale for lower weights: 10KG Weighing Machine using Arduino Load Cell & HX711 Module

If you want the Weighing Scale to be IOT Based You can check here: IOT Weighing Scale with HX711 Load Cell & ESP8266 on Blynk



Bill of Materials

Following are the components required for this Weighing Scale Project. All the components can be easily purchased from Amazon. The component purchase link is given below.

S.N.Components NameQuantityPurchase Links
1Arduino Nano1Amazon | AliExpress
216x2 LCD Display1Amazon | AliExpress
3Load Cell1Amazon | AliExpress
4HX7111Amazon | AliExpress
5Push Button1Amazon | AliExpress
6Connecting Wires10Amazon | AliExpress
7Breadboard1Amazon | AliExpress

Load Cell

A load cell is a type of transducer, specifically a force transducer. It converts a force such as tension, compression, pressure, or torque into an electrical signal that can be measured and standardized. As the force applied to the load cell increases, the electrical signal changes proportionally. Load cells are used to measure weight.

40KG Load Cell

Load cells generally consist of a spring element on which strain gauges have been placed. The spring element is usually made of steel or aluminum. That means it is very sturdy, but also minimally elastic. As the name “spring element” suggests, the steel is slightly deformed under load, but then returns to its starting position, responding elastically to every load. These extremely small changes can be acquired with strain gauges. Then finally the deformation of the strain gauge is interpreted by analysis electronics to determine the weight.




HX711 Module

The HX711 Dual-Channel 24 Bit Precision A/D weight Pressure Sensor Load Cell Amplifier and ADC Module is a small breakout board for the HX711 IC that allows you to easily read load cells to measure weight. By connecting the module to your microcontroller you will be able to read the changes in the resistance of the load cell and with some calibration. You’ll be able to get very accurate weight measurements.

HX711 Module

This can be handy for creating your own industrial scale, process control, or simple presence detection. The HX711 Weighing Sensor uses a two-wire interface (Clock and Data) for communication. Any microcontroller’s GPIO pins should work making it easy to read data from the HX711.

Each color corresponds to the conventional color coding of load cells :
1. Red (Excitation+ or VCC).
2. Black (Excitation- or GND).
3. White (Amplifier+, Signal+, or Output+).
4. Green (A-, S-, or O-).
5. Yellow (Shield).

The YLW pin acts as an optional input that not hook up to the strain gauge but is utilized to ground and shield against outside EMI (electromagnetic interference).


Base Design & Connections

Load Cell and HX711 Connection:

Arduino Weighing Machine using Load Cell HX711

C++
1
2
3
4
- RED Wire is connected to E+
- BLACK Wire is connected to E-
- WHITE Wire is connected to A-
- GREEN Wire is connected to A+


Load Cell Assembly on Base:

Load Cell Base

A base is also required to fix the load cell over it by using nuts and bolts. Here we have used a hard plyboard for the frame for placing things over it and a light wooden board as Base. This is required as load cell bends slightly when some weight is placed over it.


Circuit: Weighing Scale with 40KG Load Cell HX711 & Arduino

Here is a circuit diagram for interfacing 40KG Load Cell and HX711 Module with Arduino. You can follow the same circuit here and make your own Weighing Scale.

Circuit Load Cell HX711 Arduino

The connection between Load Cell & HX711 has been explained above. Connect the DT & SCK Pins of Load Cell to Arduino D2 & D3 Pins. I have used a push-button tact switch to reset the weight to zero. Push-button Switch is a connected digital pin D4 of ESP8266. I used a 16X2 I2C LCD Display to minimize the connection. So, connect the SDA & SCL pin of I2C LCD Display to D2 & D1 of Nodemcu respectively.


Source Code/Program to Calibrate the Load Cell

After connecting the load cell as above, you need to calibrate it first before going for the final design. So first calibrate the whole assembly unit. You will need one library to make the code compile. Download HX711 Library from below.

Download HX711 Library

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "HX711.h"  //You must have this library in your arduino library folder
#define DOUT  2
#define CLK  3
HX711 scale(DOUT, CLK);
//Change this calibration factor as per your load cell once it is found you may need to vary it in thousands
float calibration_factor = -109525; //-109525 worked for my 40Kg max scale setup
//=============================================================================================
//                         SETUP
//=============================================================================================
void setup() {
  Serial.begin(9600);
  Serial.println("HX711 Calibration");
  Serial.println("Remove all weight from scale");
  Serial.println("After readings begin, place known weight on scale");
  Serial.println("Press a,s,d,f to increase calibration factor by 10,100,1000,10000 respectively");
  Serial.println("Press z,x,c,v to decrease calibration factor by 10,100,1000,10000 respectively");
  Serial.println("Press t for tare");
  scale.set_scale();
  scale.tare(); //Reset the scale to 0
  long zero_factor = scale.read_average(); //Get a baseline reading
  Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
  Serial.println(zero_factor);
}
//=============================================================================================
//                         LOOP
//=============================================================================================
void loop() {
  scale.set_scale(calibration_factor); //Adjust to this calibration factor
  Serial.print("Reading: ");
  Serial.print(scale.get_units(), 3);
  Serial.print(" kg"); //Change this to kg and re-adjust the calibration factor if you follow SI units like a sane person
  Serial.print(" calibration_factor: ");
  Serial.print(calibration_factor);
  Serial.println();
  if(Serial.available())
  {
    char temp = Serial.read();
    if(temp == '+' || temp == 'a')
      calibration_factor += 10;
    else if(temp == '-' || temp == 'z')
      calibration_factor -= 10;
    else if(temp == 's')
      calibration_factor += 100;  
    else if(temp == 'x')
      calibration_factor -= 100;  
    else if(temp == 'd')
      calibration_factor += 1000;  
    else if(temp == 'c')
      calibration_factor -= 1000;
    else if(temp == 'f')
      calibration_factor += 10000;  
    else if(temp == 'v')
      calibration_factor -= 10000;  
    else if(temp == 't')
      scale.tare();  //Reset the scale to zero
  }
}



Once you upload the calibration code, open the serial monitor and adjust your scale factor with known weight until you see the correct readings. Press a,s,d,f to increase calibration factor by 10,100,1000,10000 respectively. Press z,x,c,v to decrease calibration factor by 10,100,1000,10000 respectively.

Calibration

Once you see the placed weight is the same as shown weight note down the calibration factor and use it in the final code for Weighing Scale.


Source Code/Program: Weighing Scale with 40KG Load Cell HX711 & Arduino

Once you find the calibration factor update it in below code. Then you can simply upload the code and hence your weighing scale is ready.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "HX711.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
 
HX711 scale(2, 3);
 
int rbutton = 7; // this button will be used to reset the scale to 0.
float weight;
float calibration_factor = -101525; // for me this vlaue works just perfect 419640
 
void setup()
{
  Serial.begin(9600);
  pinMode(rbutton, INPUT_PULLUP);
  scale.set_scale();
  scale.tare(); //Reset the scale to 0
  long zero_factor = scale.read_average(); //Get a baseline reading
  
  lcd.begin();
  lcd.setCursor(6,0);
  lcd.print("DIY");
  lcd.setCursor(1,1);
  lcd.print("Weighing Scale");
  delay(3000);
  lcd.clear();
}
 
void loop()
 
{
  scale.set_scale(calibration_factor); //Adjust to this calibration factor
 
  weight = scale.get_units(5);
 
  lcd.setCursor(0, 0);
  lcd.print("Measured Weight");
  lcd.setCursor(0, 1);
  lcd.print(weight);
  lcd.print(" KG  ");
  delay(2000);
  lcd.clear();
  
  Serial.print("Weight: ");
  Serial.print(weight);
  Serial.println(" KG");
  Serial.println();
  
 
  if ( digitalRead(rbutton) == LOW)
{
  scale.set_scale();
  scale.tare(); //Reset the scale to 0
}
 
}

If you want the Weighing Scale to be IOT Based You can check here: IOT Weighing Scale with HX711 Load Cell & ESP8266 on Blynk

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleSTM32 & DS3231 Based Real Time Clock with OLED
Next Article ESP32 Fingerprint Sensor Based Door Lock Security System

Related Posts

DC Energy Meter using Arduino

Build a DC Energy Meter using Arduino – 32V/5A

Updated:August 26, 20252K
Interfacing ADXL375 Accelerometer with Arduino

Interfacing ADXL375 Accelerometer with Arduino (±200g)

Updated:June 28, 2025
PZEM-004T Arduino Energy Meter

DIY AC Energy Meter using PZEM-004T & Arduino

Updated:March 6, 20258K
Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Updated:February 2, 20259K
Password Based Door Lock Security System Using Arduino & Keypad

Password Based Door Lock Security System Using Arduino & Keypad

Updated:February 2, 20252436K
Earthquake Detector Alarm with with Accelerometer & Arduino

Earthquake Detector Alarm with Accelerometer & Arduino

Updated:February 2, 2025661K
View 11 Comments

11 Comments

  1. Roelf on May 5, 2020 1:39 AM

    Hi, is ‘t possible to connect four load cells at one hx711 ? 4x 5 kg. Of so how?
    Thanks in advanced.

    Reply
  2. Mark on July 6, 2020 1:38 PM

    Yes, you’ll need 4 x ‘matched impedance’ load cells and connect them in a Wheatstone format…or 2 x for a half Wheatstone Bridge. In theory 4 x 5 kg = 20kg…provided a single load cell is not overloaded beyond it’s spec’s by weight being placed more on one corner.

    Reply
  3. Sonu verma on July 31, 2020 5:11 PM

    Required circuit of 20ltr. Automatic paint filling machine with load cell, pnumetic cylender and aurdino based. Please help me

    My mail I’d is [email protected]

    Reply
  4. Monica on January 17, 2021 9:51 PM

    Can you explain how to interface load and hx710 with 8051 microcontroller

    Reply
  5. tyson on June 9, 2021 4:27 PM

    very helpful just that LiquidCrystal_I2C lib is buggy, my suggestion is to use hd44780 lib

    Reply
  6. David Vargas on July 4, 2021 8:36 PM

    hello I hope you are well! In my work I am doing a 30-ton scale project, it will be that this source code can be applied?

    Reply
  7. David Vargas on July 4, 2021 8:38 PM

    hello I hope you are well! In my work I am doing a 30-ton scale project, it will be that this source code can be applied

    Reply
  8. Kosay on September 2, 2021 1:28 PM

    me too same question

    Reply
  9. Anderson on January 29, 2022 9:17 PM

    Hi i would like to ask what is the calibration factor that I should set if I wanted to display the values in terms of grams.
    (I am also using a 40 kg tension scale(degraw hook))

    Please help me on that, my mail is [email protected]

    Reply
  10. Anderson on January 29, 2022 10:52 PM

    I need help displaying the value in terms of grams, may I know what is the calibration factor that I should set?
    (I am also using a 40kg tension scale (degraw hook))

    Please help me on that, my mail is [email protected]
    Hope to hear from you soon

    Reply
  11. Kumar Gaurav on February 22, 2022 9:27 PM

    Please help i have a problem with display nothing display on led but serial monitor work properly

    Reply

CommentsCancel reply

Latest Posts
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

May 31, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
DIY Colorimeter using AS7265x Spectroscopy Sensor & ESP32

DIY Colorimeter using AS7265x Spectroscopy Sensor & ESP32

February 1, 2026
Top Posts & Pages
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
    IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
  • IoT Based PM & Air Quality Monitoring System using ESP32
    IoT Based PM & Air Quality Monitoring System using ESP32
  • ECG Graph Monitoring with AD8232 ECG Sensor & Arduino
    ECG Graph Monitoring with AD8232 ECG Sensor & Arduino
  • Buck Converter: Basics, Working, Design & Application
    Buck Converter: Basics, Working, Design & Application
  • How to use INA226 DC Current Sensor with Arduino
    How to use INA226 DC Current Sensor with Arduino
  • ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
    ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
  • Pulse Rate (BPM) Monitor using Arduino & Pulse Sensor
    Pulse Rate (BPM) Monitor using Arduino & Pulse Sensor
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (204)
    • ESP32 MicroPython (7)
    • ESP32 Projects (81)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.