<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機控制步進(jìn)電機正反轉

單片機控制步進(jìn)電機正反轉

作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò ) 收藏
步進(jìn)電機模塊:

本文引用地址:http://dyxdggzs.com/article/201611/315924.htm

原理圖:

兩相六線(xiàn)步進(jìn)電機,步進(jìn)角7.5度,額定工作電壓12V,完全可以使用5V做實(shí)驗。

以下是引用 gguoqing 在2006-6-11 15:10:02的發(fā)言:

使用偉納定做的20CM杜邦頭實(shí)驗連接線(xiàn),可以很方便的將ME300與步進(jìn)電機模塊連接起來(lái)。

http://www.willar.com/shop_view.asp?id=47

在ME300B上使用時(shí),可從J7上引出5V電源到步進(jìn)電機模塊J1上。

將J1(ICE)上的P1.0-P1.3用杜邦頭實(shí)驗連接線(xiàn)連接到步進(jìn)電機模塊J2上。

產(chǎn)品詳情:

http://www.willar.com/shop_view.asp?id=48。

以下是本站管理員gguoqing專(zhuān)門(mén)編寫(xiě)的演示程序。

C語(yǔ)言范例:

/*******************************************************************

/*

/* ME300系列單片機開(kāi)發(fā)系統演示程序-步進(jìn)電機鍵控正反轉實(shí)驗

/*

/* 郵箱: gguoqing@willar.com

/* 網(wǎng)站:http://www.willar.com;

/* 作者: gguoqing

/* 時(shí)間: 2006/05/30

/*

/*【版權】COPYRIGHT(C)偉納電子www.willar.comALL RIGHTS RESERVED

/*【聲明】此程序僅用于學(xué)習與參考,引用請注明版權和作者信息!

/*

/******************************************************************/

#include //51芯片管腳定義頭文件

#include //內部包含延時(shí)函數 _nop_();

#define uchar unsigned char

#define uintunsigned int

uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};

uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};

sbitK1 = P1^4; //正轉

sbitK2 = P1^5; //反轉

sbitK3 = P1^6;

sbitK4 = P1^7; //停止

sbitBEEP = P3^7; //蜂鳴器

/********************************************************/

/*

/* 延時(shí)t毫秒

/* 11.0592MHz時(shí)鐘,延時(shí)約1ms

/*

/********************************************************/

void delay(uint t)

{

uint k;

while(t--)

{

for(k=0; k<125; k++)

{ }

}

}

/**********************************************************/

void delayB(uchar x)//x*0.14MS

{

uchar i;

while(x--)

{

for (i=0; i<13; i++)

{ }

}

}

/**********************************************************/

void beep()

{

uchar i;

for (i=0;i<100;i++)

{

delayB(4);

BEEP=!BEEP; //BEEP取反

}

BEEP=1;//關(guān)閉蜂鳴器

}

/********************************************************/

/*

/*步進(jìn)電機正轉

/*

/********************************************************/

voidmotor_ffw()

{

uchar i;

uintj;

for (j=0; j<12; j++)//轉1*n圈

{

if(K4==0)

{break;}//退出此循環(huán)程序

for (i=0; i<8; i++) //一個(gè)周期轉30度

{

P1 = FFW[ i ];//取數據

delay(15); //調節轉速

}

}

}

/********************************************************/

/*

/*步進(jìn)電機反轉

/*

/********************************************************/

voidmotor_rev()

{

uchar i;

uintj;

for (j=0; j<12; j++) //轉1×n圈

{

if(K4==0)

{break;} //退出此循環(huán)程序

for (i=0; i<8; i++)//一個(gè)周期轉30度

{

P1 = REV[ i ];//取數據

delay(15); //調節轉速

}

}

}

/********************************************************

*

*主程序

*

*********************************************************/

main()

{

uchar r,N=5; //N 步進(jìn)電機運轉圈數

while(1)

{

if(K1==0)

{

beep();

for(r=0;r

{

motor_ffw(); //電機正轉

if(K4==0)

{beep();break;}//退出此循環(huán)程序

}

}

else if(K2==0)

{

beep();

for(r=0;r

{

motor_rev(); //電機反轉

if(K4==0)

{beep();break;}//退出此循環(huán)程序

}

}

else

P1 = 0xf0;

}

}

匯編語(yǔ)言范例

;/*****************************************************************

;/*

;/* ME300系列單片機開(kāi)發(fā)系統演示程序 - 步進(jìn)電機鍵控正反轉實(shí)驗

;/*

;/*

;/* 郵箱:gguoqing@willar.com

;/* 網(wǎng)站:http://www.willar.com;

;/* 作者: gguoqing

;/* 時(shí)間: 2006/05/30

;/*

;/*【版權】Copyright(C)偉納電子www.willar.comAll Rights Reserved

;/*【聲明】此程序僅用于學(xué)習與參考,引用請注明版權和作者信息!

;/*

;/******************************************************************

; 步進(jìn)電機步進(jìn)角為 7.5度,一圈 360 度。

; 雙四拍工作方式:

; AB-BC-CD-DA (即一個(gè)脈沖,轉 7.5 度)

; 單雙八拍工作方式:

; A-AB-B-BC-C-CD-D-DA (即一個(gè)脈沖,轉 3.75 度)

; 一個(gè)取數工作周期,步進(jìn)電機轉30度

; 步進(jìn)電機轉一圈需要12個(gè)取數工作周期

;-------------------------------------------------------

; A組線(xiàn)圈對應 P1.0(桔色)

; B組線(xiàn)圈對應 P1.1(棕色)

; C組線(xiàn)圈對應 P1.2(黃色)

; D組線(xiàn)圈對應 P1.3(黑色)

;-------------------------------------------------------

K1BITP1.4 ;步進(jìn)電機正轉

K2BITP1.5 ;步進(jìn)電機反轉

K3BITP1.6

K4BITP1.7 ;步進(jìn)電機停止轉動(dòng)

BEEPBITP3.7

;-------------------------------------------------------

ORG 0000H

LJMP MAIN

ORG 0030H

;-------------------------------------------------------

MAIN:

MOVSP,#60H

MOVP1,#0F0H ;關(guān)閉步進(jìn)電機,鍵輸入線(xiàn)置高

MAIN1:

JBK1,MAIN2

ACALLBEEP_BL ;步進(jìn)電機正轉

ACALLFFW

MAIN2:

JBK2,MAIN1

ACALLBEEP_BL ;步進(jìn)電機反轉

ACALLREV

JMPMAIN1

;------------------------正轉-------------------------

FFW:

;MOV R3,#12 ;7.5度電機正轉1圈共12個(gè)周期

MOVR3,#60 ;轉5圈

FFW1:

MOV R0,#00H

FFW2:

JBK4,FFW3 ;終止步進(jìn)電機運行

ACALLBEEP_BL

JMPFFW4

FFW3:

MOV P1,#0F0H

MOV A,R0

;MOV DPTR,#TABLE_F;選擇工作方式

MOV DPTR,#TABLE1

MOVC A,@A+DPTR

MOV P1,A

LCALL DELAY

INC R0

CJNEA,#0FFH,FFW2

DJNZ R3,FFW1

FFW4:

MOV P1,#0F0H

RET

;---------------------------反轉--------------------------

REV:

;MOV R3,#12 ;7.5度電機反轉1圈共12個(gè)周期

MOVR3,#60 ;轉5圈

REV1:

MOV R0,#00H

REV2:

JBK4,REV3;終止步進(jìn)電機運行

ACALLBEEP_BL

JMPREV4

REV3:

MOV P1,#0F0H

MOV A,R0

; MOV DPTR,#TABLE_R ;選擇工作方式

MOV DPTR,#TABLE2

MOVC A,@A+DPTR

MOV P1,A

CALL DELAY

INC R0

CJNEA,#0FFH,REV2

DJNZ R3,REV1

REV4:

MOV P1,#0F0H

RET

;-------------------------------------------------------

DELAY:

MOV R7,#40 ;步進(jìn)電機的轉速

DEL1:MOV R6,#248

DJNZ R6,$

DJNZ R7,DEL1

RET

;-------------------------------------------------------

DELAY1:

MOV R5,#20 ;2S 延時(shí)子程序

DEL2:

MOV R7,#200

DEL3:

MOV R6,#250

DJNZR6,$

DJNZR7,DEL3

DJNZR5,DEL2

RET

;-------------------------------------------------------

; 單雙八拍工作方式

TABLE_F:;正轉表

DB0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H

DB0FFH

TABLE_R:;反轉表

DB0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1H

DB0FFH

;-------------------------------------------------------

; 雙四拍工作方式:

TABLE1:

DB 0F3H,0F6H,0FcH,0F9H;正轉表

DB 0FFH;正轉結束

TABLE2:

DB 0F9H,0FCH,0F6H,0F3H;反轉表

DB 0FFH;反轉結束

;--------------------------------------------------------

;蜂鳴器響一聲子程序

;--------------------------------------------------------

BEEP_BL:

MOVR6,#100

BL1:

CALLDEX1

CPLBEEP

DJNZR6,BL1

RET

DEX1:

MOVR7,#180

DEX2:

NOP

DJNZR7,DEX2

RET

;---------------------------------------------------------

END

四相步進(jìn)電機:

齒距角: Qz = 2π/ Z Z --- 轉子的齒數

步距角---轉子走一步所轉過(guò)的角度

步距角: Qn = Qz/N = 2π/NZN --- 步進(jìn)電機工作拍數

步進(jìn)電機轉速:

n = 60×f / N×Z (轉/分); f =脈沖頻率(Hz)

對于步距角為7.5度的步進(jìn)電機而言:

Qn = 7.5度

Qz = Qn×N = 7.5×4=30度 (齒距角)

Z=2π/Qz = 360/30 = 12 (轉子的齒數)

四相步進(jìn)電機有三種運行狀態(tài):

1、步進(jìn)電機為四相單四拍運行狀態(tài):

當電機繞組通電時(shí)序為A-B-C-D時(shí)為正轉,通電時(shí)序為D-C-B-A時(shí)為反轉。

N = 4

步距角: Qn = Qz/N = 2π/NZ =360/4*12=7.5°

則步進(jìn)電機轉一圈所需步進(jìn)數: 360°/7.5°=48 (步進(jìn)數)

2、步進(jìn)電機為四相雙四拍運行狀態(tài):

當電機繞組通電時(shí)序為AB-BC-CD-DA時(shí)為正轉,通電時(shí)序為DA-CD-BC-AB時(shí)為反轉。

N = 4

步距角: Qn = Qz/N = 2π/NZ =360/4*12=7.5°

則步進(jìn)電機轉一圈所需步進(jìn)數: 360°/7.5°=48 (步進(jìn)數)

3、步進(jìn)電機為四相八拍運行狀態(tài)。

當電機繞組通電時(shí)序為A-AB-B-BC-C-CD-D-DA時(shí)為正轉,通電時(shí)序為DA-D-CD-C-BC-B-BA-A時(shí)為反轉。

N = 8

步距角: Qn = Qz/N = 2π/NZ =360/8*12=3.75°

則步進(jìn)電機轉一圈所需步進(jìn)數: 360°/3.75°=96 (步進(jìn)數)



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>