关于HX711电子秤的问题求助

2019-07-21 07:31发布

最近在做一款电子秤,用的是HX711芯片,主控是STM32F103VET6, 电子秤模块.png ,称重原理图是这样的,我只写了一个HX711的驱动程序,读出来的值一直为16777215,即2^24,不管怎么改变压力传感器,一直都是这个数值,这个好像是最大值了,不知道问题出在哪了。E+E-的电压接近3.3V,和芯片的供电电压接近了。。所以是这个最大值吗,请教一下做过这个东西的人,提供一下解决办法,还是我的思路有问题了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
48条回答
Clivia
1楼-- · 2019-07-24 20:45
hyxhyx 发表于 2016-9-1 14:11
再次冒昧问一下 dWeight_Maopi,GapValue这两个变量是如何取得?是根据传感器算的吗?

weight是读传感器读出来的(前边发的read函数),gapvalue是常数,根据传感器不懂校准的
Clivia
2楼-- · 2019-07-25 01:53
comprends 发表于 2016-9-1 14:14
你这个GapValue就是那个系数吗,读数据的代码是一样的。
[mw_shl_code=c,true]unsigned long Read_HX711 ...

是的,那估计咱们两个用起来效果应该差不多,你要是想精确到g的话就只能换小量程的传感器了感觉,,,或者换精度高的
comprends
3楼-- · 2019-07-25 02:50
Clivia 发表于 2016-9-1 14:18
是的,那估计咱们两个用起来效果应该差不多,你要是想精确到g的话就只能换小量程的传感器了感觉,,,或 ...

我还在调试,可以提供你一个滤波函数,效果还可以
[mw_shl_code=c,true]float Filter(u32 j) {
  int i;
  float filter_sum = 0;
  filter_buf[FILTER_N - 1] = j;
  if(((filter_buf[FILTER_N - 1] - filter_buf[FILTER_N - 2]) > FILTER_A) || ((filter_buf[FILTER_N - 2] - filter_buf[FILTER_N - 1]) > FILTER_A))
  {  
    for(i = 0; i < FILTER_N - 1; i++) {        //
    filter_buf = filter_buf[i + 1];                                 //μYí&#198;&#198;&#189;&#190;ù&#194;&#203;2¨(&#187;&#172;&#182;ˉ&#198;&#189;&#190;ù&#194;&#203;2¨&#203;&#227;·¨)
    filter_sum += filter_buf;                                                         //
  }
   filter_buf[FILTER_N - 2]=filter_sum / (FILTER_N - 1);
   return (filter_sum / (FILTER_N - 1));
  }
  else
        return filter_buf[FILTER_N - 2];
}[/mw_shl_code]

就是一个限幅滤波+递推平均滤波
comprends
4楼-- · 2019-07-25 07:53
 精彩回答 2  元偷偷看……
hyxhyx
5楼-- · 2019-07-25 11:24
Clivia 发表于 2016-9-1 14:17
weight是读传感器读出来的(前边发的read函数),gapvalue是常数,根据传感器不懂校准的

我用3.3v提供芯片电压,重量为200kg,用万用表测得E+的电压为3.2v(这里的3.2v应该是按照http://bbs.elecfans.com/jishu_521207_1_1.html给出的计算公式计算的VAVDD的值),但是按照上面介绍的方法求得的计算体重的公式不对呀,您能介绍一下您的gapvalue值是如何获取的吗?而且我用的驱动程序和您的一样,读出的数是7585120
Clivia
6楼-- · 2019-07-25 14:44
hyxhyx 发表于 2016-9-1 15:51
我用3.3v提供芯片电压,重量为200kg,用万用表测得E+的电压为3.2v(这里的3.2v应该是按照http://bbs.elec ...

不知道你说的计算不对是哪里不对,那个常数是你多次测试出来的。你说的读数是初始的数据吗?你放上重物之后呢?差值多少

一周热门 更多>