标题: HX711读取的AD值与实际重量的转换 [打印本页]

作者: AAMF    时间: 2020-4-29 09:10
标题: HX711读取的AD值与实际重量的转换
根据论坛各位大佬的代码,ReadHX711可以得到一个AD值,但是如何将他转换成实际质量这一步没有详细介绍.是有什么公式吗?
可否请各位大佬们指点一下具体如何转换的吗,无比感谢!

作者: piliming    时间: 2020-4-30 15:16
1)网上代码很多,那个宝这个模块还带秤也十几块钱送代码,学会利用资源。2)其实一点就破,用标准砝码校准的,没有重物下得到去皮AD值,放个100g得到一个校准AD值,接下来知道了吧,就是个求解一元一次方程y=ax+b的系数
作者: lzw1997    时间: 2020-4-30 16:17
假设重力为 A Kg, (x<5Kg),测量出来的 AD 值为 y 5Kg 传感器输出,发送给 AD 模块儿的电压为 A Kg * 4.3mV / 5Kg = 0.86A mV 经过128倍增益后为 128 * 0.86A = 110.08AmV 转换为24bit 数字信号为 110.08A mV * 2 24  / 4.3V = 429496.7296A 所以 y = 429496.7296A /100 = 4294.967296 A 因此得出 A = y / 4294.967296 Kg ≈ y / 4.30 g 所以得出程序中计算公式 Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/4.30+0.05); //+0.05是为了四舍五入百分位 特别注意:  因为不同的传感器斜率特性曲线不一样,因此,每一个传感器需要矫正这里 的4.30这个除数。 当发现测试出来的重量偏大时,增加该数值。 如果测试出来的重量偏小时,减小改数值。 该数值一般在4.0-5.0之间。因传感器线性斜率不同而定。 每个传感器都要校准。
作者: hantu    时间: 2020-4-30 18:32
用法码去校准底数就行了
作者: AAMF    时间: 2020-4-30 19:57
piliming 发表于 2020-4-30 15:16
1)网上代码很多,那个宝这个模块还带秤也十几块钱送代码,学会利用资源。2)其实一点就破,用标准砝码校准 ...

“放个100g得到一个校准AD值”那怎么读出这个AD值呢...不是很明白
作者: AAMF    时间: 2020-4-30 20:17
lzw1997 发表于 2020-4-30 16:17
假设重力为 A Kg, (x

您能帮我看看调试4.xx用这几行代码对吗
void get_pizhong()          //获取皮重,秤盘重量
{
        ulong hx711_dat;
        hx711_dat=ReadCount();                //HX711AD转换数据处理
        temp=(uint)(hx711_dat/100);       
}

void get_weight()          //获取被测物体重量
{
        ulong hx711_data,a;
        uint get,aa;       
        hx711_data=ReadCount();                   //HX711AD转换数据处理
        get=(uint)(hx711_data/100);
        if(get>temp)
        {
                a=ReadCount();
                aa=(uint)(a/100)-temp;
                weight=(uint)((float)aa/4.00+0.05);                                                                                                                                                                       
        }
}

void Display_Weight()
{
       LcdWriteCom(0x80);
        LcdWriteData(weight/1000 + 0x30);
        //LcdWriteData('.');
        LcdWriteData(weight%1000/100 + 0x30);
        LcdWriteData(weight%100/10 + 0x30);
        LcdWriteData(weight%10 + 0x30);
}


作者: 24K纯纯帅    时间: 2022-5-24 20:54
lzw1997 发表于 2020-4-30 16:17
假设重力为 A Kg, (x

老哥,经过128增益之后的电压值转换为24位数字信号那部分是乘以224还是多少啊
作者: Hephaestus    时间: 2022-5-24 23:19
24K纯纯帅 发表于 2022-5-24 20:54
老哥,经过128增益之后的电压值转换为24位数字信号那部分是乘以224还是多少啊

你不需要考虑什么128增益。因为应变片传感器灵敏度离散性太大了,用理论值乘上增益得到的数据是完全无法用的。

用楼上多位师兄的意见,只能用砝码来标定。如果满量程ADC读数依然没有饱和,那么增益到底是多少,完全没有必要去考虑。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1