打印

步进电机驱动问题

[复制链接]
1017|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pkat|  楼主 | 2013-8-24 17:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么我这程序驱动步进电机的时候,电机会顿。转的不匀。。
#include<reg52.h>

#define uchar unsigned char
#define uint  unsigned int

sbit IN1=P0^0;
sbit IN2=P0^1;
sbit IN3=P0^2;
sbit IN4=P0^3;

sbit ENA=P3^0;
sbit ENB=P3^1;
void delayt(uint z);
unsigned char A[8]={0x01,0x05,0x04,0x06,0x02,0x0a,0x08,0x09};
//unsigned char C[4]={0x01,0x04,0x02,0x08};

void dianjixuanzhuan(long int pulse,uchar zf,uchar t)//角度。方向。延时
{
long int b;
int i=0;




for(b=0;b<=pulse;b++)
{

P0=A[i];
delayt(t);
if(zf==0)
{
if(i==7)
          i=0;

     else            
      i++;
}   
else
     {  
        if(i==0)
       i=7;
            else  
i--;
     }

}
//P1=0X00;
//while(1);         
}          
void delayt(uint z)
   {
   uint x, y;
   for(x=z;x>0;x--);
   for(y=220;y>0;y--);
   }
void main()
{

uint a;
ENA = 0;
ENB = 0;
          for(a=5;a>0;a--)
           {dianjixuanzhuan(100,1,2);}

}                 

相关帖子

沙发
秋天落叶| | 2013-8-24 17:42 | 只看该作者
脉宽是多少。驱动的功率够不够。
转动不均匀很可能是和机械部分的响应跟不上你发的脉冲有关。

使用特权

评论回复
板凳
baidudz| | 2013-8-24 17:54 | 只看该作者
用示波器把波形拉出来看看

使用特权

评论回复
地板
yybj| | 2013-8-24 18:07 | 只看该作者
芯片功率够不够,速率过快,消耗功率很大,这时芯片的功率可能不够就不会转了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

2726

帖子

0

粉丝