|
我有兩個(gè)二相四線步進(jìn)電機(jī),兩個(gè)電機(jī)額定電壓都是5V,小的步進(jìn)電機(jī)用這個(gè)程序可以正常運(yùn)轉(zhuǎn),但是大的步進(jìn)電機(jī)只有微微的顫動(dòng)感,只接兩條線的時(shí)候電機(jī)顫動(dòng)比較明顯(電機(jī)我用萬(wàn)用表測(cè)試過(guò),所以接線應(yīng)該沒(méi)問(wèn)題)。我問(wèn)過(guò)淘寶賣家,他說(shuō)電機(jī)測(cè)試正常才發(fā)過(guò)來(lái)的,
#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) //延時(shí)約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);
}
}
|
-
TIM截圖20181008202058.png
(123.5 KB, 下載次數(shù): 82)
下載附件
2018-10-8 20:21 上傳
小的步進(jìn)電機(jī)用這個(gè)程序可以來(lái)回運(yùn)轉(zhuǎn)
-
TIM截圖20181008202118.png
(318.79 KB, 下載次數(shù): 91)
下載附件
2018-10-8 20:22 上傳
這個(gè)相對(duì)大一點(diǎn)的步進(jìn)電機(jī)不能轉(zhuǎn)(接兩條線的時(shí)候會(huì)有震動(dòng)感)
|