Arduino interfacing hx711 and load cell in proteus

Arduino interfacing hx711 and load cell in proteus 

In this article we will learn how to interfacing arduino nano with HX711 and load cell.
In the last post we will learn how to operate PIR sensor with one relay component in proteus. You can visit our website,
I hope you appreciate my work, let’s discuss about today’s project.

Arduino interfacing hx711 and load cell
Arduino interfacing hx711 and load cell

Components which we use in this project are listed below.

  1. Arduino nano
  2. Virtual terminal
  3. HX711
  4. Load cell
  5. Capacitor 1uf
  6. Capacitor 10uf
  7. Resistor 1.2k
  8. Resistor 2k

Construction of Arduino interfacing hx711 and load cell 

Connect D1 point of arduino to RXD point of virtual terminal.

Connect D2 point of arduino to the point 12 of HX711.

Connect D3 point of arduino to the point 11 of HX711.

Connect the both point 14, 15 of HX711 to GND.

Connect the point 6 of HX711 to +ve point of 1uf.

Connect –ve point of 1uf to GND.

Connect the point 7 of HX711 to IN1 point of load cell.

Connect the point 8 of HX711 to the point IN2 of load cell.

Connect –ve point of load cell to GND.

Connect the point 3 of HX711 to collector point of transistor through +ve point of load cell.

Connect the point 2 of HX711 to base point of transistor.

Connect the both point 1, 16 of HX711 to the point of emitter point of transistor.

Connect the point 4 of HX711 to one side of resistor 1.2k

Connect the other side of resistor 1.2k to GND.

Dress up all the wire’s clean and tidy.

Working of Arduino interfacing hx711 and load cell 

After placing this project reset the value of load cell at 00

After reset the load cell when we place a load on load cell it gives the analog value to HX711 then HX711 convert this analog value to digital value and transfer it to arduino.. Then arduino gives us the value according to our program which we add on it.

Application of Arduino interfacing hx711 and load cell

  1. Industrial weighing system
  2. Retail scales
  3. Kitchen scales
  4. Automotive testing
  5. Material testing

Advantages of Arduino interfacing hx711 and load cell

  1. High accuracy
  2. Digital output
  3. Low noise and drift
  4. Easy interface
  5. Compact size
  6. Durability
  7. Versatility
  8. Cost-effectiveness

programing code of Arduino interfacing hx711 and load cell

#include <Arduino.h>
#include <HX711.h>

// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;

HX711 scale;

void setup() {
Serial.begin(57600);
Serial.println(“HX711 Demo by Satyam Singh”);
Serial.println(“Initializing the scale”);

scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);

Serial.println(“Before setting up the scale:”);
Serial.print(“read: \t\t”);
Serial.println(scale.read()); // print a raw reading from the ADC

Serial.print(“read average: \t\t”);
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC

Serial.print(“get value: \t\t”);
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight (not set yet)

Serial.print(“get units: \t\t”);
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight (not set) divided
// by the SCALE parameter (not set yet)

scale.set_scale(36.059);
//scale.set_scale(-471.497); // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0

Serial.println(“After setting up the scale:”);

Serial.print(“read: \t\t”);
Serial.println(scale.read()); // print a raw reading from the ADC

Serial.print(“read average: \t\t”);
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC

Serial.print(“get value: \t\t”);
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight, set with tare()

Serial.print(“get units: \t\t”);
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight, divided
// by the SCALE parameter set with set_scale

Serial.println(“Readings:”);
}

void loop() {
Serial.print(“Weight in KG:\t”);
Serial.print(scale.get_units()/1000, 1);
Serial.print(“\t| average:\t”);
Serial.println(scale.get_units(10), 5);

delay(600);
}