永发信息网

让步进电机正反转如何编程

答案:1  悬赏:70  手机版
解决时间 2021-11-27 17:41
让步进电机正反转如何编程
最佳答案
            只要控制在四相绕组上输入脉冲的顺序,就可以控制电机的正转/反转。(控制延时就能控制转速。)
    步进电机有四相绕组A、B、C、D,当一绕组通电时在电动机内部形成N-S极,产生磁场,当通电的相发生变化,磁场发生旋转,在磁场的作用下,转子将转动,若步进电机按双四拍的方式来工作。
    在A、B、C、D四相绕组上输入脉冲的顺序为AB→BC→CD→DA→AB,步进电机沿顺时针方向转动,即正转;若在A、B、C、D四相绕组上依次输入脉冲AB→DA→CD→BC→AB;步进电机将沿逆时针方向旋转,即反转。
#include        //51芯片管脚定义头文件
#include   //内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint  unsigned int
uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};  //四相八拍正转编码
uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};  ////四相八拍反转编码
sbit  K1   = P3^2;       //正转
sbit  K2   = P3^3;       //反转
sbit  K3   = P3^4;       //停止
sbit  BEEP = P3^6;       //蜂鸣器


void delay(uint t)
{                           
   uint k;
   while(t--)
   {
     for(k=0; k<125; k++)
     { }
   }
}

void delayB(uchar x)    //x*0.14MS
 {
   uchar i;
   while(x--)
   {
     for (i=0; i<13; i++)
     { }
   }
 }

void beep()
 {
   uchar i;
   for (i=0;i<100;i++)
    { 
     delayB(4);
     BEEP=!BEEP;                 //BEEP取反
    } 
     BEEP=1;                    //关闭蜂鸣器
 }


void  motor_ffw()
 { 
   uchar i;
   uint  j;
   for (j=0; j<8; j++)         //转1*n圈 
    { 
     if(K3==0)
        {break;}                //退出此循环程序
      for (i=0; i<8; i++)       //一个周期转45度
        {
          P1 = FFW[i];          //取数据
          delay(2);            //调节转速
        }
    }
 }


void  motor_rev()
{
     uchar i;
  uint  j;
  for (j=0; j<8; j++)       //转1×n圈
      {
     if(K3==0)
         {break;}               //退出此循环程序
        for (i=0; i<8; i++)     //一个周期转45度
        {
          P1 = REV[i];          //取数据
          delay(2);            //调节转速
        }
      }
 }

main()
 { 
      uchar r,N=64;             //N 步进电机运转圈数
   while(1)
    {  
      if(K1==0)
   {
        beep();
  for(r=0;r         { 
     motor_ffw();       //电机正转
      if(K3==0)
           {beep();break;}    //退出此循环程序
      }
      }
   else if(K2==0)
       { 
     beep();
  for(r=0;r         {
        motor_rev();       //电机反转
     if(K3==0)
           {beep();break;}    //退出此循环程序
   }
       }
    else  
   P1 = 0xf0;
    }
 }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题细菌群体的生长规律的测定中,下列操作
6年数学对答案
今天去交通银行激活信用卡成功后,为什么没还
作文海岛上的哨兵该怎么写
看作帅气的小伙,少妇心中一荡,她能抵挡诱惑吗
网络用语"昔"和"昆"有什么解释?
织毛衣如何收针?
羊陀的(擎羊、陀罗合论)
vivo手机新机多少钱
尼可以组什么词啊
手臂没有线条?该怎么练?!
持有某国绿卡/拥有该国永居权,那么从中国前
“假象”和“假相”有什么区别?
写一篇有关自己寝室感情的短文,下图是详细题
派大星的英文名是?
推荐资讯
毛家饭店湘菜味道怎么样?
我想学英语,但是我最基本的都不懂,有什么软
汨罗市到安化县法院有多少公里
身随心动是什么意思
贵阳到福州开车有多远?
C65N/C20A-1P中的1P是什么意思?
怎么样才可以和死人打交道?学道法得几年?
下列各组离子能大量共存于同一溶液中,且加入
几个月可以做无创dna
三剑豪昆仑有哪些技能 昆仑派技能搭配攻略
成年以后犯罪家里要承担责任吗?
王品集团怎么样
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?