技術頻道

娓娓工業(yè)
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > ULN2003如何驅動5V步進電機

ULN2003如何驅動5V步進電機

時間:2018-01-02 11:37:17來源:網絡轉載

導語:?步進電機是將電脈沖信號轉變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機,是現代數字程序控制系統中的主要執(zhí)行元件,應用極為廣泛。

ULN2003是一個非門電路,包含7個單元,各二極管的正極分別接各達林頓管的集電極。用于感性負載時,該腳接負載電源正極,起續(xù)流作用(在感性負載中,電路斷開后會產生很大的反電動勢,為防止損壞達林頓管,接反相的二極管來構成通路,使之轉換為電流)。

步進電機是將電脈沖信號轉變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機,是現代數字程序控制系統中的主要執(zhí)行元件,應用極為廣泛。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度,稱為“步距角”,它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。

ULN2003如何驅動5V步進電機

第一步進電機需要的驅動電流很大,因此直接使用單片機往往管腳電流不夠,加上一般3.3V的單片機也無法驅動5V的步進電機,因此需要電路轉換。用的ULN2003芯片驅動步進電機。ULN2003就是起到了電流放大作用,也使得驅動電壓變成了5V。除了用ULN2003也可以自己用三極管搭建電路,原理與ULN2003內部結構類似。

ULN2003如何驅動5V步進電機

也就是步進電機要運轉時,如何給脈沖,讓電機連續(xù)運動。ps:如果給錯脈沖可能左轉幾下又轉回來。下圖就是小編電機的相序。

ULN2003如何驅動5V步進電機

下面是正轉翻轉的編碼根據技術要求。如圖用的單雙八拍。

unsignedcharF_RotaTIon[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};//FAN

unsignedcharB_RotaTIon[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};//ZHENG

此函數兩個參數,第一個參數是圈數。第二個參數是方向也就是選擇正轉和翻轉

voidmotorNCircle(intn,boolposiTIon)

{

inti=0;

intj=0;

intk=0;

for(j=0;j《n;j++)

{

for(i=0;i《64*8;i++)

{

for(k=0;k《8;k++)

{

if(TRUE==posiTIon)

SetMotor(F_Rotation[k]);

else

SetMotor(B_Rotation[k]);

Delay(20000);

}

}

}

}

下面就是SetMotor函數,根據傳的數據不同,控制的4個IOpin輸出不同。

voidSetMotor(unsignedcharInputData)

{

if(InputData&0x08)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_6);

}

else

{

GPIO_SetBits(GPIOC,GPIO_Pin_6);

}

if(InputData&0x04)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_7);

}

else

{

GPIO_SetBits(GPIOC,GPIO_Pin_7);

}

if(InputData&0x02)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_8);

}

else

{

GPIO_SetBits(GPIOC,GPIO_Pin_8);

}

if(InputData&0x01)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_9);

}

else

{

GPIO_SetBits(GPIOC,GPIO_Pin_9);

}

}

以28BYJ-48為例,根據技術資料,步距的角度為5.625-64而且?guī)в袦p速齒輪是1:64因此轉64乘64個脈沖才是1圈。因此一個脈沖轉過5.625除64=0.08789度。

所以有了下面的循環(huán)。

for(j=0;j《n;j++)

{

for(i=0;i《64*8;i++)//64*8

{

for(k=0;k《8;k++)//4相單雙8拍

{

if(TRUE==position)

SetMotor(F_Rotation[k]);

else

SetMotor(B_Rotation[k]);

Delay(20000);//注意這個延時自己去調節(jié)。

}

}

標簽:

點贊

分享到:

上一篇:DSP和CAN總線應用在直流電機...

下一篇:uln2003驅動步進電機原理分析

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.wangxinlc.cn)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業(yè)自動化與智能制造的全媒體“互聯網+”創(chuàng)新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號