新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機綜合學習系統(tǒng)之 步進電機控制篇

51單片機綜合學習系統(tǒng)之 步進電機控制篇

作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏
大家好,通過以前的學習,我們已經(jīng)對51單片機綜合學習系統(tǒng)的使用方法及學習方式有所了解與熟悉,學會了紅外線遙控的基本知識,體會到了綜合學習系統(tǒng)的易用性與易學性,這一期我們將一起學習步進電機控制的基本原理與使用方法。

先看一下我們將要使用的51單片機綜合學習系統(tǒng)能完成哪些實驗與產(chǎn)品開發(fā)工作:分別有流水燈,數(shù)碼管顯示,液晶顯示,按鍵開關,蜂鳴器奏樂,繼電器控制,IIC總線,SPI總線,PS/2實驗,AD模數(shù)轉換,光耦實驗,串口通信,紅外線遙控,無線遙控,溫度傳感,步進電機控制等等。

本文引用地址:http://www.2s4d.com/article/201611/320396.htm

上圖是我們將要使用的51單片機綜合學習系統(tǒng)硬件平臺,本期實驗我們用到了綜合系統(tǒng)主機、步進電機,綜合系統(tǒng)其它功能模塊原理與使用詳見前幾期《電子制作》雜志及后期連載教程介紹。

步進電機是將電脈沖信號轉變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。步進電機可以作為一種控制用的特種電機,利用其沒有積累誤差(精度為100%)的特點,廣泛應用于各種開環(huán)控制。

步進電機分類與結構

現(xiàn)在比較常用的步進電機分為三種:反應式步進電機(VR)、永磁式步進電機(PM)、混合式步進電機(HB)。本章節(jié)以反應式步進電機為例,介紹其基本原理與應用方法。反應式步進電機可實現(xiàn)大轉矩輸出,步進角一般為1.5度。反應式步進電機的轉子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導的變化產(chǎn)生轉矩。常用小型步進電機的實物如圖1所示。

圖1步進電機實物圖

圖2 步進電機內(nèi)部圖

步進電機現(xiàn)場應用驅動電路

綜合系統(tǒng)使用的是小型步進電機,對電壓和電流要求不是很高,為了說明應用原理,故采用最簡單的驅動電路,目的在于驗證步進電機的使用,在正式工業(yè)控制中還需在此基礎上改進。一般的驅動電路可以用圖3的形式。

圖3 一般驅動電路

在實際應用中一般驅動路數(shù)不止一路,用上圖的分立電路體積大,很多場合用現(xiàn)成的集成電路作為多路驅動。常用的小型步進電機驅動電路可以用ULN2003或ULN2803。本書配套實驗板上用的是ULN2003。ULN2003是高壓大電流達林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統(tǒng)。ULN2003A由7組達林頓晶體管陣列和相應的電阻網(wǎng)絡以及鉗位二極管網(wǎng)絡構成,具有同時驅動7組負載的能力,為單片雙極型大功率高速集成電路。ULN2003內(nèi)部結構及等效電路圖如圖4:

圖4 ULN2003內(nèi)部框圖及等效電路圖

ULN2003A型高壓大電流達林頓晶體管陣列電路的典型應用電路框圖如圖5所示。鉗位二極管用于保護線圈通斷時的反電動勢擊穿集成電路,可以看出,該電路的應用非常簡單。

圖5 典型應用圖

步進電機的程序設計

實現(xiàn)功能:開發(fā)板上電時電機正轉,按住51單片機綜合學習系統(tǒng)上的按鍵SW20(P14)時反轉。

圖6 步進電機實驗演示圖

電機正反轉的環(huán)形脈沖分配表如下:

步數(shù)

P00

P01

P02

P03

A

B

/A

/B

1

1

1

0

0

2

0

1

1

0

3

0

0

1

1

4

1

0

0

1

表1:正轉環(huán)形脈沖分配表

步數(shù)

P00

P01

P02

P03

A

B

/A

/B

1

1

1

0

0

2

1

0

0

1

3

0

0

1

1

4

0

1

1

0

表2:反轉環(huán)形脈沖分配表

硬件原理圖

圖7 硬件原理圖

程序流程圖

圖8 軟件流程圖

軟件代碼

#include

sbit key = P1^4;

void delay(void)

{

int k;

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

}

void main()

{

P0=0x00;//輸出全高

key=1;//按鍵置輸入狀態(tài)

while(1)//主循環(huán)

{

if(key==1)//無鍵按下正轉

{

P0=0xFC;//1100

delay();

P0=0xF6;//0110

delay();

P0=0xF3;//0011

delay();

P0=0xF9;//1001

delay();

}

else//有鍵按下反轉

{

P0=0xFC;//1100

delay();

P0=0xF9;//1001

delay();

P0=0xF3;//0011

delay();

P0=0xF6;//0110

delay();

}

}

}

相信看到這里,你應該可以理解步進電機控制的原理是怎么樣的了,你也可以根據(jù)自己的需要來設定步進電機的轉動軌跡。由于篇幅有限,讀者朋友可以通過網(wǎng)站或電子郵件一起交流與學習。在下幾期中,我們將陸續(xù)介紹51單片機綜合學習系統(tǒng)的其它功能原理與應用。


評論


技術專區(qū)

關閉