Measurement Principles of HX711.h Library
1. It takes counts (ADC value) when there is no weight on the scale (empty bucket); the library calls it OFFSET. The weight corresponding to this OFFSET counts is known as tare weight. The tare weight is a gross weight whose value is not known to us. (It turns into zero net weight when the Load Cell is calibrated against two known points (say, 500 gm and 1500 gm.)
2. The Library asks to place a known weight (say, 500 gm) onto the scale and then requests the user to adjust the calibrationFactor of the following expression until the display shows close to 0.500.
weight = (counts - OFFSET)*calibrationFactor ( y = mx +c)
3. The following data has been obtained in a test bench composed of 0-30 kg Load cell, UNO, and HX710B (x128) 24-bit ADC. The experimental data:
(a) Empty Bucket : Counts (ADC value) - 0x3854D (average of 10 readings)
(b) 500 gm : Counts - 0x50AF6 ( " )
(c) 1500 gm : Counts - 0x82138 ( " )
4. By applying computation formula of Step-2, we get the value for calibrartionFactor as:
500 = (0x50AF6 - 0x3854D )*calibrationFactor
===> calibrationFactor = 500/(330480 - 230733) = 0.005012 ------> 5012 (106 times amplified)
Validity/quality check of calibrationFactor for 1500 gm:
weight = (counts - OFFSET)calibrationFactor
===> weight = (0x82138 - 0x3854D )0.005012 = 1513 (error 13 gm)
===> weight106 = 5012counts - 1156433796
===> weight = 1513 gm (13 gm error!)
5. Let us apply 2-point calibration principle of plateau region (flat operating region where normal loading takes place) based on counts for 500 gm and 1500 gm of Step-3
===> (1500-500)/(0x82138 - 0x50AF6) = (1500 - weight)/(0x82138 - counts)
===> weight106 = 4943counts - 1133594653 (y = mx + c)
Validity/quality check of plateau region calibration principle for 1500 gm:
weight = 4943*0x82138 - 1133594653
===> weight = 1499 gm (1 gm error!)
Conclusion:
2-point calibration principle in plateau region takes care (to some extent) the inherent hysteresis of the Load Cell. The fixed tare weight concept of the HX711.h Library makes a 2-point calibration; but, it is not made in the plateau region and thus it cannot take much care of the load cell hysteresis?