Unstable output for loadcell

hello guys so I'm busy playing around with my HKD 20kg loadcell my Arduino Uno and my hx711 board . I am experiencing a unstable reading in weight varies more then 20g up and down here's my code i got it from a tutorial and it worked fine for this guy and a guy on YouTube I cant seem to see why?

/**
 * Complete project details at https://RandomNerdTutorials.com/arduino-load-cell-hx711/
 *
 * HX711 library for Arduino - example file
 * https://github.com/bogde/HX711
 *
 * MIT License
 * (c) 2018 Bogdan Necula
 *
**/

#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(9600);
  Serial.println("HX711 Demo");
  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(104.929);
  //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("one reading:\t");
  Serial.print(scale.get_units(), 1);
  Serial.print("\t| average:\t");
  Serial.println(scale.get_units(10), 5);

  delay(5000);
}

The controller is deterministic, if the inputs are stable.

How is your power supply, wiring and actual circuitry?

for now i used a usb from my computer and tested 2 cables on 2 different computers.
also i soldered onto the loadcell wires and plugged my hx711 into my breadboard and joined them from there to my Arduino. also tested wiggling the wires and holding them tight into the Arduino and breadboard

Out of 20 kg?

0.1% variation is not surprising at all. Average a couple of readings, if it makes you feel better.

so in theory i should get a smaller loadcell if i want to weigh from 1 to 5 kilos and accurate to 50g to 100g

To get an idea of what to expect, take a look at commercial scales to see what the maximum load is, versus the stated resolution and accuracy (but don't confuse resolution with accuracy).

Hardly anyone posts their failures on YouTube, and for many, if it works once, quick, make a video!

ok that sound about right. we build potato packing machines and we use 50kg loadcells on them with a delta plc and they work quite good on 2 to 35kgs might be 50 grams out about but quite close . so i must rather scale down to like a 5kg loadcell then if i want to make a accurate kitchen scale of a small scale for maize meal with the arduino?

That depends on what you mean by accuracy.

My 5kg (max) Salter kitchen scale reports 48 or 49 g for a calibrated 50 g test weight, and 22 g for a calibrated 20 g test weight (10% error).

I'm quite sure that it averages a bunch of measurements.

Is there a way in this code to make it rather weigh in 10grams or do i just add a sum somewear to devide the answer by 10 basically

Use a scale value to produce results in any units you like.

Ok sweet i will research and try that for sure thank you man im just busy 3d printing a better base and top for more stability

Would a capacitor help on the vcc line for voltage spikes

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.