新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 步進(jìn)電機(jī)的驅(qū)動(dòng)程序

步進(jìn)電機(jī)的驅(qū)動(dòng)程序

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
對(duì)步進(jìn)電機(jī)的控制難點(diǎn)在于步進(jìn)電機(jī)的原理,置于程序則是非常的簡(jiǎn)單!!

所以想要控制好步進(jìn)電機(jī)就必需對(duì)他有著充分的了解!

本文引用地址:http://butianyuan.cn/article/201611/321648.htm

步進(jìn)電機(jī)按相書分為:二相電機(jī)、三相電機(jī)、四相電機(jī)、五相電機(jī)

想讓步進(jìn)電機(jī)按照按照你的要求你就必須了解電機(jī)能夠旋轉(zhuǎn)的原理:::

旋轉(zhuǎn):
  如A相通電,B,C相不通電時(shí),由于磁場(chǎng)作用,齒1與A對(duì)齊,(轉(zhuǎn)子不受任何力以下均同)。如B相通電,A,C相不通電時(shí),齒2應(yīng)與B對(duì)齊,此時(shí)轉(zhuǎn)子向右移過(guò)1/3て,此時(shí)齒3與C偏移為1/3て,齒4與A偏移(て-1/3て)=2/3て。如C相通電,A,B相不通電,齒3應(yīng)與C對(duì)齊,此時(shí)轉(zhuǎn)子又向右移過(guò)1/3て,此時(shí)齒4與A偏移為1/3て對(duì)齊。如A相通電,B,C相不通電,齒4與A對(duì)齊,轉(zhuǎn)子又向右移過(guò)1/3て這樣經(jīng)過(guò)A、B、C、A分別通電狀態(tài),齒4(即齒1前一齒)移到A相,電機(jī)轉(zhuǎn)子向右轉(zhuǎn)過(guò)一個(gè)齒距,如果不斷地按A,B,C,A……通電,電機(jī)就每步(每脈沖)1/3て,向右旋轉(zhuǎn)。如按A,C,B,A……通電,電機(jī)就反轉(zhuǎn)。



#include "reg52.h"

void delay(unsigned int t);

//Motor
sbit F1 = P1^0;
sbit F2 = P1^1;
sbit F3 = P1^2;
sbit F4 = P1^3;

unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反轉(zhuǎn)
unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正轉(zhuǎn)
unsigned intK;



voidmotor_ffw()
{
unsigned char i;
unsigned intj;
for (j=0; j<12; j++)//轉(zhuǎn)1*n圈
{

for (i=0; i<8; i++)//一個(gè)周期轉(zhuǎn)30度
{
if(K==1) P1 = FFW[i]&0x1f;//取數(shù)據(jù)
if(K==2) P1 = FFZ[i]&0x1f;
delay(5);//調(diào)節(jié)轉(zhuǎn)速
}
}
}


void delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<80; k++)
{ }
}
}


main()
{
while(1)
{
K=1;
motor_ffw();
K=2;
motor_ffw();

}
}



評(píng)論


技術(shù)專區(qū)

關(guān)閉