『壹』 如何用51單片機驅動2相4線步進電機
l298就行,網上有的是,想稍微好一點就用mos橋
『貳』 單片機步進電機控制器
步進電機採用二相四拍步進電機,採用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單片機控制二相四線步進電機程序
#include<reg52.h> //頭文件
sbit A1=P1^0; //定義A線圈正埠
sbit A2=P1^1; //定義A線圈負埠
sbit B1=P1^2; //定義B線圈正埠
sbit B2=P1^3; //定義B線圈負埠
sbit en1=P2^0;
sbit en2=P2^1;
int t=0;
#define F1 {A1=1;B1=0;A2=0;B2=0;} //A線圈通正向電壓
#define F2 {A1=0;B1=1;A2=0;B2=0;} //B線圈通正向電壓
#define F3 {A1=0;B1=0;A2=1;B2=0;} //A線圈通反向電壓
#define F4 {A1=0;B1=0;A2=0;B2=1;} //B線圈通反向電壓
#define OFF {A1=0;B1=0;A2=0;B2=0;} //全部斷電
unsigned int b=2000; //中斷初值變數
void Init_Timer0(void) //初始化定時器0
{
TMOD=0x01; //定時器0,使用模式1,16位定時器
TH0=(65536-b)/256; //給定初值
TL0=(65536-b)%256;
EA=1; //打開總中斷
ET0=1; //打開定時器中斷
TR0=1; //開定時器
}
void main() //主函數
{
en1=1;
en2=1;
Init_Timer0(); //初始化定時器0
while(1);
}