㈠ 單片機怎麼控制步進電機
ULN2003D 是驅動步進電機的驅動晶元,主要是匹配電機所需的電流。
由於是四相電機,步進電機之所以可以轉動就需要給相繞組提供連續的脈沖,所以需要4個埠來控制四相繞組的工作狀態(P15應該是不需要的),具體的編碼要看電機的拍數;
一旦明白這些,你就可以很容易編寫代碼來控制電機的轉動了,還有在脈沖間你可以設置不同的延時時間來調節電機的轉速。
㈡ 單片機控制步進電機程序
假設P0口低4位接步進電機4個繞組,高電平繞組通電,程序如下:
whille(1)
{P0=1;delayms(5);
P0=2;delayms(5);
P0=4;delayms(5);
P0=8;delayms(5);}
反轉 的話, 就按 8 4 2 1 順序輸出。
㈢ 單片機步進電機控制器
步進電機採用二相四拍步進電機,採用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步調整加速度等參數。
㈣ 如何使用單片機控制步進電機
根據電機相數買個驅動器。然後用單片機產生脈沖來控制電機的轉動以及正反轉。單片機產生脈沖的方法和單片機控制流水燈是一樣的。希望我的回答能給你點思路。
㈤ 怎樣用51單片機接兩相步進電機驅動器來控制步進電機
脈沖信號就是像流水燈差不多,用兩個口。
例如:
用到P1^0和P1^1;把P10制低電平,P11制高電平,延時一段時間後,P10制高電平 P11制低電平,如此循環,看程序:
#include "reg52.h"
sbit P10=P1^0;
sbit P11=P1^1;
void delay(unsigned int x)
P10=0;P11=1;
delay(1000);
P10=1;P11=0;
delay(1000);
}
}1-B1-B1A0;
兩相四線程序 接P1口
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0xfd,0xfb,0xf7,0xef};
uint i;
void delay(uint x)
{
uint y;
for(;x>0;x--)
{
for(y=0;y<124;y++);
void main()
while(1)
P1=tab[i];
i++;
if(i==4)
{
i=0;
}
delay(20);
(5)單片機步進電機控制擴展閱讀:
同樣的一段程序,在各個單片機廠家的硬體上運行的結果都是一樣的,如ATMEL的89C51(已經停產)、89S51,PHILIPS,和WINBOND等;
常說的已經停產的89C51指的是ATMEL公司的AT89C51單片機,同時是在原基礎上增強了許多特性,如時鍾,更優秀的是由Flash(程序存儲器的內容至少可以改寫1000次)存儲器取代了原來的ROM(一次性寫入),AT89C51的性能相對於8051已經算是非常優越的了。
㈥ 單片機控制步進電機的原理
步進電機控制原理
步進電機是數字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動一個角度,因此非常適合於單片機控制。步進電機可分為反應式步進電機(簡稱VR)、永磁式步進電機(簡稱PM)和混合式步進電機(簡稱HB)。
步進電機區別於其他控制電機的最大特點是,它是通過輸入脈沖信號來進行控制的,即電機的總轉動角度由輸入脈沖數決定,而電機的轉速由脈沖信號頻率決定。
步進電機的驅動電路根據控制信號工作,控制信號由單片機產生。其基本原理作用如下:
(1)控制換相順序
通電換相這一過程稱為脈沖分配。例如:三相步進電機的三拍工作方式,其各相通電順序為A-B-C-D,通電控制脈沖必須嚴格按照這一順序分別控制A,B,C,D相的通斷。
(2)控制步進電機的轉向
如果給定工作方式正序換相通電,步進電機正轉,如果按反序通電換相,則電機就反轉。
(3)控制步進電機的速度
如果給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調整單片機發出的脈沖頻率,就可以對步進電機進行調速。
步進電機是一種可以把脈沖激勵的變化轉換成精確轉子位置增量運動的執行機構,它可將脈沖信號變成電機相應角位移的機械量,從而通過控制脈沖的個數來控制電機轉動的時間,並通過改變脈沖的頻率控制電機運轉的速度。
㈦ 哥,步進電機驅動器怎麼用單片機控制啊
步進電機驅動器一般接受的控制信號為:
1、cw+ccw,即正轉脈沖加反轉脈沖
2、pulse+dir,即脈沖加方向
一般驅動器都可以兼容兩種方式,即通過DIP開關選擇採用哪種方式。
如此,你用單片機控制起來就很方便了,用兩個IO口發控制信號就OK了,哪種方式都可以,脈沖的頻率大小決定電機的速度快慢。
當然,你也要注意驅動器需要信號的電壓大小,如果是5V,直接IO相連就行,如果需要12V,那麼需要加個光耦就行了。
㈧ 如何使用單片機精確控制步進電機
如何用單片機控制步進電機
步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到准確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
一、步進電機常識
常見的步進電機分三種:永磁式(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單片步進電機控制原理與控制設計程序
51單片步進電機是數字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動一個角度,因此非常適合於單片機控制。步進電機可分為反應式步進電機(簡稱vr)、永磁式步進電機(簡稱pm)和混合式步進電機(簡稱hb)。
51單片步進電機區別於其他控制電機的最大特點是,它是通過輸入脈沖信號來進行控制的,即電機的總轉動角度由輸入脈沖數決定,而電機的轉速由脈沖信號頻率決定。
51單片步進電機的驅動電路根據控制信號工作,控制信號由單片機產生。其基本原理作用如下:
(1)控制換相順序
通電換相這一過程稱為脈沖分配。例如:三相步進電機的三拍工作方式,其各相通電順序為a-b-c-d,通電控制脈沖必須嚴格按照這一順序分別控制a,b,c,d相的通斷。
(2)控制步51單片進電機的轉向
如果給定工作方式正序換相通電,步進電機正轉,如果按反序通電換相,則電機就反轉。
(3)控制51單片步進電機的速度
如果給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調整單片機發出的脈沖頻率,就可以對步進電機進行調速。步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到准確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。