|
ULN2003步進電機驅動原理及應用程序
0.png (70.82 KB, 下載次數: 88)
下載附件
2016-8-15 13:59 上傳
步進電機的基本原理我就不說了,百度能找出一大片來,,簡而言之就是能夠通過輸入脈沖的個數,確定旋轉的角位移,一般用他來控制小車輪子的偏移角度等。
來看看步進電機:
型號為MP28GA的步進電機(左)和ULN2003APG的驅動芯片(右),具體參數如下: 電壓
DC.V | 電阻(25°C)
Ω | 步距角
° | 減速比 | 牽入轉矩
mN.m | 自定位轉矩
mN.m
| 5 | 50 | 5.625/64 | 1/64 | ≥40 | ≥34.3 | 空載牽入頻率
Hz | 空載牽出頻率
Hz | 絕緣電阻
DC.500V | 絕緣介電強度
AC.600V.1mA.1S | 溫升
K | 噪音
dB(A) | ≥500 | ≥900 | ≥50MΩ | 無擊穿或飛弧 | <40 | <40 | MP28GA的步進電機相關參數
步進電機相勵磁的勵磁順序如下表所示: 接線端 | 導線 | | | 分 | 配 | 順 | 序 | | | 序號 | 顏色 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 5 | 紅 | + | + | + | + | + | + | + | + | 4 | 橙 | - | - | | | | | | - | 3 | 黃 | | - | - | - | | | | | 2 | 粉 | | | | - | - | - | | | 1 | 藍 | | | | | | - | - | - |
ULN2003APG的驅動芯片驅動原理圖如下所示:
FOSC = 12MHz
說得通俗uln2003相當于繼電器的作用,例如7個繼電器的一端連某電壓[也即uln2003電源電壓](<50)在一起,而另一端作為則作為輸出,又好如一個二極管,只不過因電路集成功能的因素,輸出的電壓等同于uln2003的電壓罷了,常用于步進電機
;--------------------------------------------------
; 步進電機的驅動信號必須為脈沖信號!!! 轉動的速度和脈沖的頻率成正比!!!
; 本步進電機步進角為 5.625度 . 一圈 360 度 , 需要64個脈沖完成!!!
;--------------------------------------------------
; A組線圈對應 P2.4
; B組線圈對應 P2.5
; C組線圈對應 P2.6
; D組線圈對應 P2.7
; 正轉次序: AB組--BC組--CD組--DA組 (即一個脈沖,正轉5.625度)
;------------------------------------------------
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
;----------------------------正轉
MOV R3,#192 ;正轉3圈共192個脈沖
START:
MOV R0,#00H
START1:
MOV P2,#00H
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START ;對A的判斷,當A=0時則轉到 START
MOV P2,A
LCALL DELAY
INC R0
DJNZ R3,START1
MOV P2,#00H
LCALL DELAY1
;-----------------------------反轉
MOV R3,#64 ;反轉一圈共64個脈沖
START2:
MOV P2,#00H
MOV R0,#05
START3:
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START2
MOV P2,A
CALL DELAY
INC R0
DJNZ R3,START3
MOV P2,#00H
LCALL DELAY1
LJMP MAIN
;---------------------------轉速控制
DELAY: MOV R7,#40 ;步進電機的轉速
M3: MOV R6,#248
DJNZ R6,$
DJNZ R7,M3
RET
;---------------------------延時控制
DELAY1: MOV R4,#20 ;2S 延時子程序
DEL2: MOV R3,#200
DEL3: MOV R2,#250
DJNZ R2,$
DJNZ R3,DEL3
DJNZ R4,DEL2
RET
;---------------------------正反轉表
TABLE:
DB 30H,60H,0C0H,90H; 正轉表
DB 00; 正轉結束
DB 30H,90H,0C0H,60H; 反轉表
DB 00; 反轉結束
END
/**************************************/
/*杭州電子&計算機工作室 */
/*步進電機演示程*/
/*目標器件:AT89S51 */
/*晶振:11.0592MHZ */
/*編譯環境:Keil7.50A */
/****************************/
/*************包含頭文件*******/
#include
/**************端口定義****************/
sbit key = P1^4;
/*********************************
函數功能:延時子程序
入口參數:
出口參數:
*****************************************/
void delay(void)
{
int k;
for(k=0;k<500;k++);
}
/*************************************
函數功能:主程序
入口參數:
出口參數:
********************************/
void main()
{
P1=0x00; //輸出全高
key=1; //按鍵置輸入狀態
while(1) //主循環
{
if(key==1) //無鍵按下正轉
{
P1=0xFC; //1100
delay();
P1=0xF6; //0110
delay();
P1=0xF3; //0011
delay();
P1=0xF9; //1001
delay();
}
else //有鍵按下反轉
{
P1=0xFC; //1100
delay();
P1=0xF9; //1001
delay();
P1=0xF3; //0011
delay();
P1=0xF6; //0110
delay();}}}
1.步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。 雖然步進電機已被廣泛地應用,但步進電機并不能象普通的直流電機,交流電機在常規下使用。它必須由雙環形脈沖信號、功率驅動電路等組成控制系統方可使用。因此用好步進電機卻非易事,它涉及到機械、電機、電子及計算機等許多專業知識。 目前,生產步進電機的廠家的確不少,但具有專業技術人員,能夠自行開發,研制的廠家卻非常少,大部分的廠家只一、二十人,連最基本的設備都沒有。僅僅處于一種盲目的仿制階段。這就給戶在產品選型、使用中造成許多麻煩。簽于上述情況,我們決定以廣泛的感應子式步進電機為例。敘述其基本工作原理。望能對廣大用戶在選型、使用、及整機改進時有所幫助
|
|