『壹』 單片機控制步進電動機的運動的原理及單片機程序
51單片步進電機控制原理與控制設計程序
51單片步進電機是數字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動一個角度,因此非常適合於單片機控制。步進電機可分為反應式步進電機(簡稱vr)、永磁式步進電機(簡稱pm)和混合式步進電機(簡稱hb)。
51單片步進電機區別於其他控制電機的最大特點是,它是通過輸入脈沖信號來進行控制的,即電機的總轉動角度由輸入脈沖數決定,而電機的轉速由脈沖信號頻率決定。
51單片步進電機的驅動電路根據控制信號工作,控制信號由單片機產生。其基本原理作用如下:
(1)控制換相順序
通電換相這一過程稱為脈沖分配。例如:三相步進電機的三拍工作方式,其各相通電順序為a-b-c-d,通電控制脈沖必須嚴格按照這一順序分別控制a,b,c,d相的通斷。
(2)控制步51單片進電機的轉向
如果給定工作方式正序換相通電,步進電機正轉,如果按反序通電換相,則電機就反轉。
(3)控制51單片步進電機的速度
如果給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調整單片機發出的脈沖頻率,就可以對步進電機進行調速。步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到准確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
『貳』 單片機步進電機控制器
步進電機採用二相四拍步進電機,採用89s51 或STc 系列作為控制晶元
系統具有下列功能:A採用閉環控制B可進行位移設定,前進至終點後延時1s返回值原點停止C可進行實際位移值設定D可手動控制正反轉。
步進電機控制器是一種能夠發出均勻脈沖信號的電子產品,它發出的信號進入步進電機驅動器後,會由驅動器轉換成步進電機所需要的強電流信號,帶動步進電機運轉。步進電機控制器能夠准確的控制步進電機轉過每一個角度。
驅動器所接收的是脈沖信號,每收到一個脈沖,制動器會給電機一個脈沖使電機轉過一個固定的角度,就因為這個特點,步進電機才會被廣泛的應用到現在的各個行業里。
驅動電路
在步進電機的應用中,最需要考慮的重要事項之一就是設計匹配的驅動電路。步進電機的動態性能非常地依賴驅動電路。圖1顯示了步進電機驅動系統的結構圖。驅動步進電機需要開關電流從一個定子繞組到另一個。這種開關功能被驅動電路提供,驅動電路排列,分配和放大來自信號電路的脈沖序列。步進電機的繞組以指定的次序被激勵。
集成電路的實用性已經使得對於額定電流小於3安培的小型步進電機使用分立元件構造驅動電路是不必要的。例如,SGS L7180與L7182對於單極性驅動,和L293與L298對於雙極性驅動,能夠很容易地使用在緊密的控制器里。
應用設置
1.設置步進驅動器的細分數,通常細分數越高,控制解析度越高。但細分數太高則影響到最大進給速度。一般來說,對於模具機用戶可考慮脈沖當量為0.001mm/P(此時最大進給速度為9600mm/min)或者0.0005mm/P(此時最大進給速度為4800mm/min);對於精度要求不高的用戶,脈沖當量可設置的大一些,如0.002mm/P(此時最大進給速度為19200mm/min)或0.005mm/P(此時最大進給速度為48000mm/min)。對於兩相步進電機,脈沖當量計算方法如下:脈沖當量=絲杠螺距÷細分數÷200。
2.起跳速度:該參數對應步進電機的起跳頻率。所謂起跳頻率是步進電機不經過加速,能夠直接啟動工作的最高頻率。合理地選取該參數能夠提高加工效率,並且能避開步進電機運動特性不好的低速段;但是如果該參數選取大了,就會造成悶車,所以一定要留有餘量。在電機的出廠參數中,一般包含起跳頻率參數。但是在機床裝配好後,該值可能發生變化,一般要下降,特別是在做帶負載運動時。所以,該設定參數最好是在參考電機出廠參數後,再實際測量決定。
3.單軸加速度:用以描述單個進給軸的加減速能力,單位是毫米/秒平方。這個指標由機床的物理特性決定,如運動部分的質量、進給電機的扭矩、阻力、切削負載等。這個值越大,在運動過程中花在加減速過程中的時間越小,效率越高。通常,對於步進電機,該值在100 ~ 500之間,對於伺服電機系統,可以設置在400 ~ 1200之間。在設置過程中,開始設置小一點,運行一段時間,重復做各種典型運動,注意觀察,如果沒有異常情況,然後逐步增加。如果發現異常情況,則降低該值,並留50%~100%的保險餘量。
4.彎道加速度:用以描述多個進給軸聯動時的加減速能力,單位是毫米/秒平方。它決定了機床在做圓弧運動時的最高速度。這個值越大,機床在做圓弧運動時的最大允許速度越大。通常,對於步進電機系統組成的機床,該值在400~1000之間,對於伺服電機系統,可以設置在1000 ~ 5000之間。如果是重型機床,該值要小一些。在設置過程中,開始設置小一點,運行一段時間,重復做各種典型聯動運動,注意觀察,如果沒有異常情況,然後逐步增加。如果發現異常情況,則降低該值,並留50%~100%的保險餘量。
通常考慮到步進電機的驅動能力、機械裝配的摩擦、機械部件的承受能力,可以在廠商參數中修改各個軸的最大速度,對機床用戶實際使用時的三個軸最大速度予以限制,。
5.根據三個軸零點感測器的安裝位置,設置廠商參數中的回機械原點參數。當設置正確後,可運行「操作」菜單中的「回機械原點」。先單軸回,如果運動方向正確則繼續回,否則需停止,重新設置設置廠商參數中的回機械原點方向,直至所有軸都可回機械原點。
6.設置自動加油參數(設置得小一些,如5秒加一次油),觀察自動加油是否正確,如果正確,則將自動加油參數設置到實際需要的參數。
7.校驗電子齒輪和脈沖當量的設定值是否匹配。可以在機床的任意一根軸上做個標記,在軟體中把該點坐標設為工作零點,用直接輸入指令、點動或手輪等工作方式使該軸走固定距離,用游標卡尺測量實際距離與軟體中坐標顯示距離是否相附。
8.測定有無丟脈沖。您可以用直觀的方法:用一把尖刀在工件毛坯上點一個點,把該點設為工作原點,抬高Z軸,然後把Z軸坐標設為0;反復使機床運動,比如空刀跑一個典型的加工程序(最好包含三軸聯動),可在加工中暫停或停止,然後回工件原點,緩慢下降Z軸,看刀尖與毛坯上的點是否吻合。如有偏差,請檢查步進驅動器接收脈沖信號的類型,檢查端子板與驅動器間接線是否有誤。如果還出現悶車或丟步,按10、11、12步調整加速度等參數。
『叄』 步進電機驅動器和單片機連接需要幾個信號
公共正端
------->
單片機5v
脈沖信號
------->
串個小電阻再接到單片機輸出脈沖引腳
方向信號
------->
串個小電阻下接到單片機輸出方向引腳
有上面3根線就可以控制步進電機的走動了,
一上電時,
電機是自動鎖定的,
如果還需要控制步進電機鎖定和放開,
那還要再接一根
電機釋放信號,
接法同脈沖信號
『肆』 單片機與步進電機驅動如何連接
一個脈沖走一步,所以脈沖信號要單片機給出一個脈沖信號。
方向則是電平信號,可能高電平是正向,低電平是反向,當然,具體的正、反方向是相對的。
離線?是選擇信號吧,有點像CS,如果無效,則脈沖、方向信號不起作用。
要控制電機時,先確定方向信號的電平是正轉還是反轉,然後給出選擇信號,或者說取消離線信號,這時,單片機給一個脈沖,電機向著設定的方向走一步。不需要再轉的時候,取消選擇信號。
如果是6根線,可能這3個信號是用耦隔離的,每個信號是兩根線。一般驅動器外殼上會有圖,可以參照一下。
『伍』 如何使用單片機精確控制步進電機
如何用單片機控制步進電機
步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到准確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
一、步進電機常識
常見的步進電機分三種:永磁式(PM),反應式(VR)和混合式(HB),永磁式步進一般為兩相,轉矩和體積較小,步進角一般為7.5度或15度;反應式步進一般為三相,可實現大轉矩輸出,步進角一般為1.5度,但雜訊和振動都很大。在歐美等發達國家80年代已被淘汰;混合式步進是指混合了永磁式和反應式的優點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為0.72度。這種步進電機的應用最為廣泛。
二、永磁式步進電機的控制
下面以電子愛好者業余製作中常用的永磁式步進電機為例,來介紹如何用單片機控制步進電機。圖1是35BY型永磁步進電機的外形圖,圖2是該電機的接線圖,從圖中可以看出,電機共有四組線圈,四組線圈的一個端點連在一起引出,這樣一共有5根引出線。要使用步進電機轉動,只要輪流給各引出端通電即可。將COM端標識為C,只要AC、C、BC、C,輪流加電就能驅動步進電機運轉,加電的方式可以有多種,如果將COM端接正電源,那麼只要用開關元件(如三極體),將A、B、輪流接地。列出了該電機的一些典型參數:表135BY48S03型步機電機參數型號步距角相數電壓電流電阻最大靜轉距定位轉距轉動慣量35BY48S03 7.5 4 12 0.26 47 180 65 2.5 有了這些參數,不難設計出控制電路,因其工作電壓為12V,最大電流為0.26A,因此用一塊開路輸出達林頓驅動器(ULN2003)來作為驅動,通過P1.4~P1.7來控制各線圈的接通與切斷。開機時,P1.4~P1.7均為高電平,依次將P1.4~P1.7切換為低電平即可驅動步進電機運行,注意在切換之前將前一個輸出引腳變為高電平。如果要改變電機的轉動速度只要改變兩次接通之間的時間,而要改變電機的轉動方向,只要改變各線圈接通的順序。
『陸』 51單片機和步進電機怎麼連接
要通過步進電機驅動模塊來連接,單片機IO不足以驅動電機,如果是小型的4相5線步進電機的話可以用ULN2003驅動用到4個IO,如果是大功率的步進電機的話需要大功率的驅動模塊這時控制方式也會改變(通過脈沖控制)。
『柒』 步進電機可以直接用單片機驅動嗎,還是必須通過驅動器
片機不能直接驅動步進電機,即便是最簡單的5線4相的步進電機,也要用擴大電流的達林頓晶元ULN2003來驅動。更加復雜的帶細分的,就必須用專用的驅動晶元了。
『捌』 如何使用單片機控制步進電機
先看步進電機控制電機轉動原理,把時序搞清楚,單片機控制驅動按照時序置管腳就OK
1、本程序用於測試4相步進電機常規驅動
2、需要用跳帽或者杜邦線把信號輸出端和對應的步進電機信號輸入端連接起來
3、速度不可以調節的過快,不然就沒有力矩轉動了
4、按s4(設置成獨立按鍵模式)可以控制正反轉
------------------------------------------------*/
#include <reg52.h>
bit Flag;//定義正反轉標志位
unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正轉表格
unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反轉表格
/******************************************************************/
/* 延時函數 */
/******************************************************************/
void Delay(unsigned int i)//延時
{
while(--i);
}
/******************************************************************/
/* 主函數 */
/******************************************************************/
main()
{
unsigned char i;
EX1=1; //外部中斷0開
IT1=1; //邊沿觸發
EA=1; //全局中斷開
while(!Flag)
{
P0=0x71;//顯示 F 標示正轉
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //輸出對應的相 可以自行換成反轉表格
Delay(500); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
}
while(Flag)
{
P0=0x7C;//顯示 b 標示反轉
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //輸出對應的相
Delay(500); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
}
}
/******************************************************************/
/* 中斷入口函數 */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(300);
Flag=!Flag; //s3按下觸發一次,標志位取反
}
『玖』 單片機怎麼控制步進電機
ULN2003D 是驅動步進電機的驅動晶元,主要是匹配電機所需的電流。
由於是四相電機,步進電機之所以可以轉動就需要給相繞組提供連續的脈沖,所以需要4個埠來控制四相繞組的工作狀態(P15應該是不需要的),具體的編碼要看電機的拍數;
一旦明白這些,你就可以很容易編寫代碼來控制電機的轉動了,還有在脈沖間你可以設置不同的延時時間來調節電機的轉速。