|
我有兩個二相四線步進電機,兩個電機額定電壓都是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);
}
}
|
|