关于HX711电子秤的问题求助

2019-07-21 07:31发布

最近在做一款电子秤,用的是HX711芯片,主控是STM32F103VET6, 电子秤模块.png ,称重原理图是这样的,我只写了一个HX711的驱动程序,读出来的值一直为16777215,即2^24,不管怎么改变压力传感器,一直都是这个数值,这个好像是最大值了,不知道问题出在哪了。E+E-的电压接近3.3V,和芯片的供电电压接近了。。所以是这个最大值吗,请教一下做过这个东西的人,提供一下解决办法,还是我的思路有问题了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
48条回答
comprends
1楼-- · 2019-07-22 00:56
但好像又不对,这个传感器是我从另外一个秤上拆的,接在那个秤上可以工作,测得工作的输入电压为3.3V,信号对地电压为1.4V,怎么转接到HX711上就不行了,驱动代码如下
[mw_shl_code=c,true]unsigned long ReadCount(void)
{
    unsigned long Count;
    unsigned char i;

//        RCC->APB2ENR |= 1<<3;
//    GPIOB->CRL &= 0X00ffffff;
//    GPIOB->CRL |= 0X003000000;  
       
        GPIO_InitTypeDef  GPIO_InitStructure;
               
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);       

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
       
   
    ADSK = 0;    //SCK=0
    Count = 0;
    while(ADDO);
    for (i = 0; i < 24; i++)
    {
        ADSK = 1;
        Count = Count << 1;
        ADSK = 0;
        if(ADDO) Count++;
    }
    ADSK = 1;
    Count = Count ^ 0x800000;
    ADSK = 0;
    return(Count);
}[/mw_shl_code]

串口打印的话就一句:                printf("DATA:%lu ",ReadCount());
comprends
2楼-- · 2019-07-22 04:36
 精彩回答 2  元偷偷看……
comprends
3楼-- · 2019-07-22 10:06
传感器.jpg 补充一下,传感器是那种电阻应变式压力传感器,
hyxhyx
4楼-- · 2019-07-22 15:00
楼主,我用的是4个50kg的,请问怎样转换称重量?而且我用上述程序获取的值是val值是7583411,后三位一直在变化,求赐教
comprends
5楼-- · 2019-07-22 16:11
hyxhyx 发表于 2016-8-31 15:02
楼主,我用的是4个50kg的,请问怎样转换称重量?而且我用上述程序获取的值是val值是7583411,后三位一直在 ...

我也卡在这在。。应该还需要一个滤波算法,数据不稳定,转换我也不知道,网上那些好像不行
Clivia
6楼-- · 2019-07-22 17:21
hyxhyx 发表于 2016-8-31 15:02
楼主,我用的是4个50kg的,请问怎样转换称重量?而且我用上述程序获取的值是val值是7583411,后三位一直在 ...

处理数据的时候有个参数吧,read完之后要除以那个数,得到具体的质量,每个传感器不一样的,要校准。

一周热门 更多>