找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

Flux电机有限元分析教程西莫团购入口 | 奖励入口当当网购物入口 | 奖励入口欢迎使用!西莫论坛App开放下载Motor-CAD电机多物理域设计教材购买入口 | 奖励入口
★新会员论坛须知★《西莫电机技术》第39期发售火热进行中Flux电机电磁阀有限元分析教程团购入口 | 奖励入口论坛微信公众平台欢迎入驻
西莫电机及相关产品供需交流群开放邀请★ 论坛VIP会员申请 ★Motor-CAD.MANATEE电磁热振动噪声教程 | 奖励入口西莫团队欢迎您的加盟!
宣传推广合作请联系QQ:25941174西莫电机论坛微信群正式开放Flux变压器与电抗器有限元分析团购入口 | 奖励入口西莫电机论坛技术版区QQ群汇总
查看: 2966|回复: 0

[求助] 解决L6219DS两相步进电机细分驱动问题

[复制链接]

该用户从未签到

发表于 2010-1-14 16:23 | 显示全部楼层 |阅读模式 来自: 中国广东深圳

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

                               
登录/注册后可看大图
      

                               
登录/注册后可看大图
         
L6219的I01,I11,I12,I02,PH1,PH2分别接到单片机,还有参考电压(VREF1,VREF2)也接到单片机PWM输出端口。
I01,I11,I12,I02给接低电平,两相输出电流都为VREF/10*RS,
(1)当PH1=1,PH2=1时(AB)
       VREF1由5V慢慢下降到0V,VREF2由0V慢慢上升到5V
(2)当PH1=0,PH2=1时(-AB)
        VREF1由0V慢慢上升到5V,VREF2由5V慢慢下降到0V
(3)当PH1=0,PH2=0时(-A-B)
       VREF1由5V慢慢下降到0V,VREF2由0V慢慢上升到5V
(4)当PH1=1,PH2=0时(A-B)
        VREF1由0V慢慢上升到5V,VREF2由5V慢慢下降到0V
  循环(1)——(4)

  原来走一步现在细分成N步来完成,应该没有什么振动才对,可是还是有振动,是在那里出了问题呢,我一名学生能力有限,请各位帮帮忙,在此谢过!!

//---------------------------------马达的运转-------------------------------
void MotorRun(unsigned char Direct,unsigned int Steps)//方向与步数
{
       unsigned int StepCount;
       unsigned char Subdivide=1;
       switch(MotorWorking.WorkState)
       {
              case MotorIdel:
                     MotorWorking.MotorDirect=Direct;
                     MotorWorking.MotorSteps=Steps;
                     MotorWorking.SubdivideNumber=1;                         //马达128倍细分
                     MotorWorking.WorkState=MotorPowerOn;
              case MotorPowerOn:                                             //马达旋转步距角比较小时,在上电过程中完成,速度不上到正常旋转中
                     while(Subdivide<MotorWorking.MaxStep)
                     {
                            StepCount=65;                                    //马达走64个小步,速度上一个台阶
                            while(--StepCount)
                            {     MotorRunOneStep(MotorWorking.MotorDirect);
                                   MotorGetEnergy(MotorWorking.SubdivideTableID);
                            }
                            Subdivide<<=1;
                            MotorWorking.SubdivideNumber=Subdivide;
                     }                                                        //当马达速度达到最大速度时进入正常运转状态
                     MotorWorking.WorkState=MotorNormalState;
              case MotorNormalState:
                     StepCount=MotorWorking.MotorSteps;                       //这里的StepCount保存的是马达还有多少个步距角
                     while(StepCount>4)                                       //马达最后一圈进入减速状态
                     {              MotorRunOneStep(MotorWorking.MotorDirect);   //查找PWM占空比数据
                                   MotorGetEnergy(MotorWorking.SubdivideTableID);  //由数据输PWM(电流变化)
                                   StepCount=MotorWorking.MotorSteps;              
                                           }
                     MotorWorking.WorkState=MotorPowerOff;
              case MotorPowerOff:
                     StepCount=MotorWorking.MotorSteps;
                     if(MotorWorking.MotorSteps==4)
                     {
                            Subdivide=MotorWorking.MaxStep>>1;
                            while(Subdivide)
                            {
                                   StepCount=65;                              //马达走64个小步,速度上一个台阶
                                   while(--StepCount)
                                   {   
                                          MotorRunOneStep(MotorWorking.MotorDirect);
                                          MotorGetEnergy(MotorWorking.SubdivideTableID);
           
                                   }
                                   Subdivide>>=1;
                                   MotorWorking.SubdivideNumber=Subdivide;
                            }                                                
                     }
                     MotorWorking.WorkState=MotorIdel;
                     break;
                     default:
                     break;
       }
}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

西莫电机论坛微信公众平台欢迎您的关注!

QQ|Archiver|手机版|小黑屋|西莫电机圈 ( 浙ICP备10025899号-3|浙公网安备:33028202000436号 )

GMT+8, 2024-12-26 22:59 , Processed in 0.090552 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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