三相步进电机驱动

来源:网络  作者:网络转载   2019-10-06 阅读:842
三相步进电机的三相六拍工作方式,正转的绕组通电顺序:A、AB、B、BC、C、CA、A,反转的通电顺序:A、AC、C、CB、B、BA、B、A。 由于步进电机转子有一定的惯性以及所带负载的惯性,故步进电机的工作过程中不能及时的启动和停止,在启动时应慢慢的加速到预定速度,在停止前应逐渐减速到停止,否则,将产生失步现象。 步进电机的控制问题可总结为两点: 1、产生工作方式需要的时序脉冲; 2、控制步进电机的速度,使它始终遵循加速、匀速、减速的规律工作。 系统:   接口:   程序: #include<io8515v.h> #include<macros.h> const char zhzhuan[7]={0x06,0x04,0x05,0x01,0x03,0x02,0x00}; const char fanzhuan[7]={0x06,0x02,0x03,0x01,0x05,0x004,0x00}; const int time[5]={4000,3200,2400,1600,800}; char num;    char direct;   char num_run;  void main(void)     {   DDRA=0x07;   TCCR1A=0x00;   TCCR1B=0x09;   TIMSK=0x10;   SREG|=0x80;   while(1)   {     ;   }  }   #pragma interrupt_handler time1coma:5  void time1coma(void)      {    char i,j;       if(num>9)                            {     if(num_run<5) OCR1A=time[num_run];                      else if(num_run>(num-5)) OCR1A=time[num-num_run];    }    else    {     i=(num+1)/2;     if(num_run<(i)) OCR1A=time[num_run];                  else OCR1A=time[num-num_run];                        }    if(num_run<num)    {     j=num_run%6;     if(direct==1) PORTA=zhzhuan[j];                 else PORTA=fanzhuan[j];     num_run+=1;    }    else    {     OCR1A=0x0fa0;    }   }  
标签: 机电
打赏

免责声明:
本站部份内容系网友自发上传与转载,不代表本网赞同其观点;
如涉及内容、版权等问题,请在30日内联系,我们将在第一时间删除内容!

购物指南

支付方式

商家合作

关于我们

微信扫一扫

(c)2008-2018 DESTOON B2B SYSTEM All Rights Reserved
免责声明:以上信息由相关企业或个人自行免费发布,其真实性、准确性及合法性未证实。请谨慎采用,风险自负。本网对此不承担任何法律责任。

在线咨询

在线咨询:

QQ交流群

微信公众号