OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3425|回复: 2

基于32 的电子秤显示问题

[复制链接]

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2017-5-20
在线时间
15 小时
发表于 2017-5-20 10:29:42 | 显示全部楼层 |阅读模式
1金钱
各位好友,刚接触32,做了一个电子秤,hx711的ad转换,1kg量程的重量显示小数点后两位,为啥一直跳动呢,也加入了软件滤波,还是不行。买的电子秤不都是放上去实物,数值会稳定的吗,还是ad采集要做些什么吗?
while(1)
        {       
    a=KEY_Scan(0);
    switch(a)
                {                                 
                        case KEY0_PRES:
                  Get_Maopi();
                                break;
                        case KEY1_PRES:

       Get_Weightchuzhi();
       delay_ms(10);
       weightchuzhi=Get_Weightchuzhi();
       break;
                        case WKUP_PRES:       
         Get_Maopi();
                                break;
                        default:
                                delay_ms(10);       
    }



                if(t%10==0)
           {
       Get_Weight();
     delay_ms(10);
     weight=Get_Weight();

    POINT_COLOR=RED;//éèÖÃ×ÖìåÎaoìé«
    LCD_ShowNum(100,170, weight/10000,1,16);//ÏÔê¾êμê±ÖØá¿
          LCD_ShowNum(100+8,170,weight%10000/1000,1,16);
    LCD_ShowNum(100+8+8,170,weight%1000/100,1,16);
    LCD_ShowNum(100+8+16+8,170,weight%100/10,1,16);
    LCD_ShowNum(100+8+16+8+8,170,weight%10,1,16);

             
  }                                  
            delay_ms(100);       
             t++;
     if(t==10)
                {
                   t=0;
                        LED0=!LED0;
    }

        }

}
获取重量
s32 Get_Weight(void)
{

         HX711_Buffer=HX711_val_filtered();

  if(HX711_Buffer > Weight_Maopi)                       
        {

                Weight_Shiwu = HX711_Buffer;
                Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                               

                Weight_Shiwu = (s32)((float)Weight_Shiwu/GapValue+0.05);        
                        delay_us(1);                                                                                                       
        }




  return (Weight_Shiwu);
}





滤波
u32 HX711_val_filtered(void)
{
  u32 Sam[18],tmpmax,tmpmin,sum=0,Average;
   u8 i;
  for(i=0;i<18;i++)
{
    Sam[i]=HX711_Read();

  if(i==0)
{
     tmpmax=Sam[0];

tmpmin=Sam[0];
}
   if(i>0)
{
if(Sam[i]>tmpmax) tmpmax=Sam[i];
if(Sam[i]<tmpmin) tmpmin=Sam[i];

}
  }

    for(i=0;i<18;i++)

{   
     if(!(Sam[i]==tmpmax||Sam[i]==tmpmin))

{   sum=sum+Sam[i];

}

}
  Average=sum/(18-2);
   return Average;


}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
258
金钱
258
注册时间
2015-12-14
在线时间
50 小时
发表于 2017-5-20 13:53:30 | 显示全部楼层
我也遇到了类似的,采集自动回中摇杆的AD值后就有小幅度跳动
Keep moving,to be NO.1!
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2017-5-20
在线时间
15 小时
 楼主| 发表于 2017-5-20 17:19:49 | 显示全部楼层
那应该怎么调试啊,ad采集的时间吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-21 02:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表