|
我有兩個二相四線步進(jìn)電機(jī),兩個電機(jī)額定電壓都是5V,小的步進(jìn)電機(jī)用這個程序可以正常運(yùn)轉(zhuǎn),但是大的步進(jìn)電機(jī)只有微微的顫動感,只接兩條線的時候電機(jī)顫動比較明顯(電機(jī)我用萬用表測試過,所以接線應(yīng)該沒問題)。我問過淘寶賣家,他說電機(jī)測試正常才發(fā)過來的,
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define Z 10 //步進(jìn)電機(jī)速度(我從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軸前進(jìn)函數(shù)
{
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軸后退函數(shù)
{
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);
}
}
|
|