hi
Need Help.
For Measuring weight application upto 20kg using Fx1901 Sensor with HX711 amplier and Arduino.
Can read upto 4Kgs. When Increasing the weight the Serial Reading is not changing showing 4kgs only
What to do next to measure the weight up 25kgs.
It probably has something to do with your code.
This may be due to a missing or bad pull down resistor somewhere. Without the code and the wiring, there's not much we can do.
I'm having a similar problem.
Hardware:
Arduino Micro
TE FX1901 Load Cell, 0-50 lbs
SparkFun Load Cell Amplifier - HX711
The TE load cell outputs 20 mV / V.
I directly measured the output range at ~-2.6 mV to ~120 mV which seems reasonable . . . 20mV/V x 5V = 120 mV
Software:
I have tried two different libraries with the Sparkfun HX711 board, 'HX711-master' and 'HX711_ADC' from the built-in libraries. Both behave the same way. At some point the raw readings max out but it is way below the output maximum of the sensor.
In the case of the HX711_ADC library and the example code (only edit was changed the data and clock pins), the raw reading hits a max of 14003 but the sensor is only at ~28 mV, not even a quarter of the 0 - 120 mV range.
//-------------------------------------------------------------------------------------
// HX711_ADC.h
// Arduino master library for HX711 24-Bit Analog-to-Digital Converter for Weigh Scales
// Olav Kallhovd sept2017
// Tested with : HX711 asian module on channel A and YZC-133 3kg load cell
// Tested with MCU : Arduino Nano
//-------------------------------------------------------------------------------------
// This is an example sketch on how to use this library
// Settling time (number of samples) and data filtering can be adjusted in the HX711_ADC.h file
#include <HX711_ADC.h>
//HX711 constructor (dout pin, sck pin)
HX711_ADC LoadCell(2, 3);
long t;
void setup() {
Serial.begin(9600);
Serial.println("Wait...");
LoadCell.begin();
long stabilisingtime = 2000; // tare preciscion can be improved by adding a few seconds of stabilising time
LoadCell.start(stabilisingtime);
LoadCell.setCalFactor(696.0); // user set calibration factor (float)
Serial.println("Startup + tare is complete");
}
void loop() {
//update() should be called at least as often as HX711 sample rate; >10Hz@10SPS, >80Hz@80SPS
//longer delay in scetch will reduce effective sample rate (be carefull with delay() in loop)
LoadCell.update();
//get smoothed value from data set + current calibration factor
if (millis() > t + 250) {
float i = LoadCell.getData();
Serial.print("Load_cell output val: ");
Serial.println(i);
t = millis();
}
//receive from serial terminal
if (Serial.available() > 0) {
float i;
char inByte = Serial.read();
if (inByte == 't') LoadCell.tareNoDelay();
}
//check if last tare operation is complete
if (LoadCell.getTareStatus() == true) {
Serial.println("Tare complete");
}
}
I messed around with the gain settings in the first library code but still the same clipped result.
I can't tell from the HX711 data sheet if there is simply a maximum input level I'm hitting.
Any thoughts from you experts? If I am hitting the max allowed input value, can someone recommend some other pre-packaged amplifier that would work for the 0 - 120 mV range?
the raw reading hits a max of 14003 but the sensor is only at ~28 mV
If that's the raw, uncorrected decimal reading, I can't explain it.
I can't tell from the HX711 data sheet if there is simply a maximum input level I'm hitting.
Re-read this:
Channel A differential input is designed to interface directly with a bridge sensor’s differential output. It can be programmed with a gain of 128 or 64. The large gains are needed to accommodate the small output signal from the sensor. When 5V supply is used at the AVDD pin, these gains correspond to a full-scale differential input voltage of ±20mV or ±40mV respectively. Channel B differential input has a fixed gain of 32. The full-scale input voltage range is ±80mV, when 5V supply is used at the AVDD pin.
can someone recommend some other pre-packaged amplifier that would work for the 0 - 120 mV range
Try the ADS1115. There are a number of breakout boards and libraries for it; Adafruit is one reliable supplier.
Thanks for your help DaveEvans.
If anyone else is trying to use the TE FX1901 Load Cell and the SparkFun Load Cell Amplifier - HX711, here are a couple of things that took some time to figure out & might be useful.
From the example sketch 'HX711SerialBegin'
Serial.println("Initializing the scale");
// parameter "gain" is ommited; the default value 128 is used by the library
// HX711.DOUT - pin #A1
// HX711.PD_SCK - pin #A0
scale.begin(A1, A0);
my sketch for the micro has
scale.begin(2, 3, 32);
to get the lower gain and maximum possible voltage range. From the quoted documentation, you are now using the B channel so you have to wire your sensor to the B channel inputs which are located towards the center of the breakout board.
By using the lower gain, I was able to get about 0 - 25 lbs. of useable range from my 0 - 50 lb. sensor.