久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 步進電機的驅動程序

步進電機的驅動程序

作者: 時間:2016-11-26 來源:網絡 收藏
步進電機的控制難點在于步進電機的原理,置于程序則是非常的簡單!!

所以想要控制好步進電機就必需對他有著充分的了解!

本文引用地址:http://cqxgywz.com/article/201611/321648.htm

步進電機按相書分為:二相電機、三相電機、四相電機、五相電機

想讓步進電機按照按照你的要求你就必須了解電機能夠旋轉的原理:::

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



#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}; //反轉
unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正轉
unsigned intK;



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

for (i=0; i<8; i++)//一個周期轉30度
{
if(K==1) P1 = FFW[i]&0x1f;//取數據
if(K==2) P1 = FFZ[i]&0x1f;
delay(5);//調節轉速
}
}
}


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();

}
}



關鍵詞: 步進電機驅動程

評論


技術專區

關閉