我有两个二相四线步进电机,两个电机额定电压都是5V,小的步进电机用这个程序可以正常运转,但是大的步进电机只有微微的颤动感,只接两条线的时候电机颤动比较明显(电机我用万用表测试过,所以接线应该没问题)。我问过淘宝卖家,他说电机测试正常才发过来的,
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define Z 10 //步进电机速度(我从2到100都有尝试)
sbit za=P1^0;
sbit za_=P1^1;
sbit zb=P1^2;
sbit zb_=P1^3;
void delayms(uint xms) //延时约xms毫秒
{
uint i,j;
for(i=xms; i>0; i--)
for(j=110; j>0; j--);
}
void zfor(uint i) //z轴前进函数
{
while(i--)
{
za=1;zb=0;za_=0;zb_=0;delayms(Z);
za=0;zb=1;za_=0;zb_=0;delayms(Z);
za=0;zb=0;za_=1;zb_=0;delayms(Z);
za=0;zb=0;za_=0;zb_=1;delayms(Z);
}
}
void zbac(uint i) //z轴后退函数
{
while(i--)
{
za=0;zb=0;za_=0;zb_=1;delayms(Z);
za=0;zb=0;za_=1;zb_=0;delayms(Z);
za=0;zb=1;za_=0;zb_=0;delayms(Z);
za=1;zb=0;za_=0;zb_=0;delayms(Z);
}
}
void main()
{
while(1)
{
zfor(90);
zbac(90);
}
}
|