Code C - [expand] 1 2 weighingScale.wt = HX711_Read() - weighingScale.noLoadWt; weighingScale.weight = (double)weighingScale.wt * weighingScale.capacityInKgs / Adc_Resolution;
You have an ADC, thus you have to take care about nyquist to avoid alias frequencies.Where to put analog filters?
Can I use movingAverage filter in software for getting noLoadCounts?
Why: I told you about alias frequenciesWhy should I use a filter on INA+ and INA- pins of HX711 module?
What do you get?I am not getting 30.000 Kgs as result. I am not even getting 10.000 Kgs as a result.
What's AdcResolution in the equation?My equation is
weight = (HX711_rawValue - noLoadCounts) * CapacityInKgs / AdcResolution
#define Adc_Resolution 16777216.0
Code C - [expand] 1 2 3 4 weighingScale.wt = HX711_Read_Average(8) - weighingScale.noLoadCounts; weighingScale.capacityInKgs = (double)weighingScale.capacity / 1000.0; //capacity stored in eeprom 30000 = 30 Kgs weighingScale.weight = (double)weighingScale.wt * weighingScale.capacityInKgs * 4.0 / Adc_Resolution; weighingScale.weight = weighingScale.weight * ((double)weighingScale.capacityInKgs / weighingScale.weight);
weighingScale.wt = HX711_Read_Average(8) - weighingScale.noLoadCounts;
weighingScale.capacityInKgs = (double)weighingScale.capacity / 1000.0; //capacity stored in eeprom 30000 = 30 Kgs
weighingScale.weight = (double)weighingScale.wt * weighingScale.capacityInKgs * 4.0 / Adc_Resolution;
weighingScale.weight = weighingScale.weight * ((double)weighingScale.capacityInKgs / weighingScale.weight);
weighingScale.weight = weighingScale.weight * ((double)weighingScale.capacityInKgs / weighingScale.weight);
weighingScale.weight = (double)weighingScale.wt * weighingScale.capacityInKgs * 4.0 / Adc_Resolution;
Code C - [expand] 1 2 3 4 5 6 7 8 9 #define AVDD_Recommended 5.0 #define AVDD_Actual 4.3 #define HX711_Full_Scale_value_mV_Per_V_For_Gain_128 40 //(+/-20 mV/V = 40 mV) #define Load_Cell_Full_Scale_Value_mV_Per_V_Multiplied_By_Excitation_Voltage 10 //2 mV/V * 5V = 10mV) weighingScale.capacityInKgs = (double)weighingScale.capacity / 1000.0; //capacity stored in eeprom 30000 = 30 Kgs weighingScale.weight = (double)(HX711_Read_Average(8) - weighingScale.noLoadCounts) * weighingScale.capacityInKgs * (HX711_Full_Scale_value_mV_Per_V_For_Gain_128 / Load_Cell_Full_Scale_Value_mV_Per_V_Multiplied_By_Excitation_Voltage) * (AVDD_Recommended / AVDD_Actual) / Adc_Resolution;
#define HX711_Full_Scale_value_mV_Per_V_For_Gain_128 40 //(+/-20 mV/V = 40 mV)
#define Load_Cell_Full_Scale_Value_mV_Per_V_Multiplied_By_Excitation_Voltage 10 //2 mV/V * 5V = 10mV)
#define HX711_Full_Scale_value_mV_Per_V_For_Gain_128 34.4 //(8.6mV * 4 = 34.4mV)
#define Load_Cell_Full_Scale_Value_mV_Per_V_Multiplied_By_Excitation_Voltage 8.6 //(2 mV/V * 4.3V = 8.6mV)
34.4mV / 8.6mV = 4 (the multiplier in my case).
You don't understand ratiometric operation. Load cell output and ADC range are both scaled with AVDD. There's no 1.16 factor.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?