电机控制
直播中

徐某

7年用户 4经验值
擅长:嵌入式技术
私信 关注
[问答]

关于直流减速电机作为阀门开关的问题

我想要实现的功能是电机正转3秒打开阀门,转一圈64个脉冲的霍尔编码器计数,然后加压设备通过阀门加压,传感器采集压强值。当到达设定值时,电机反转霍尔编码器的计数值,阀门关闭。由于脉冲数小,加上是AB相的编码器,测量误差在129个脉冲。 [OC7OSPS$X2M@YEH}G~ZNEB.png 然后我在程序上加了个129,脉冲数成图下方的样子了。void PWM_SET1(u8 dir,u16 a)
{
     if(dir==1)
      {
         tiM_SetCompare4(TIM8,0);
         TIM_SetCompare3(TIM8,a);
          dir=0;
      }
    else   {
           TIM_SetCompare3(TIM8,0);
          TIM_SetCompare4(TIM8,a);
           dir=1;
      }
}


PWM_SET1(1,300);  //电机正转
delay_s(2);
PWM_SET1(0,0);        //获取先前的计数值
printf("EncCntAAAA = %d-------",EncCnt);
closeb=EncCnt;     //  EncCnt= hEncoder_Timer_Overflow * 64 + TIM3->CNT,closeb为反转圈数
hEncoder_Timer_Overflow=0;  //hEncoder_Timer_Overflow为电机转一圈的脉冲数
EncCnt=0;

PWM_SET1(0,300);                                
out:if(closeb>=(EncCnt+129)) ///判断脉冲个数,加了129后脉冲数差不多
     {  goto out;  }
PWM_SET1(0,0);
  printf("EncCntBBBB = %drn",EncCnt);                                                                    
hEncoder_Timer_Overflow=0;
EncCnt=0;
choose=0;        




试了下,感觉电机反转的值比正转多一点点。想请教下,如何确保阀门关闭完全呢。如果用传感器采集的压强值作为标准判断是否关闭,这样可以吗。因为我测得的压强值在跳动

回帖(1)

徐某

2018-4-24 10:14:04
我反转的圈数那样设置可以吗?总感觉脉冲数不对,64个脉冲,误差应该比较大,应该怎么修改比较好呢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分