51單片機學習筆記【八】——步進電機,51單片機學習筆記
一.步進電機基礎1.定義
- 步進電機是將電脈衝轉化為角位移的執行機構,主要使用永磁性步進電機,本實驗使用的步進電機為四線雙性步進電機;
- 步進電機的相數指產生不同極性N,S磁場的激磁線圈對數,常用m表示;
- 步進電機的拍數指完成一個磁場周期性變化所需脈衝數,以四線二相電機為例:
- 單向四拍:A/-B-A-B/
- 雙向四拍:A/B-AB-AB/-A/B/
- 單&雙八拍:A/-A/B-B-AB-A-AB/-B/-A/B/
- 步進角指定子沒改變一次通電狀態,轉子轉過的角度,與磁極數,定子相數,通電方式節拍成負相關。計算
360/(m*Z*C)
m–定子向數
Z–轉子磁極數
C–通電方式
C=1 單或雙輪流通電
C=2 單和雙輪流通電
2.步進電機步進方式(1).單拍方式:每次僅給一個繞組通電,使轉子轉動,並運動到轉子永磁體與具有相反極性的繞組對齊的位置(2).雙拍方式:同時給兩個繞組通電使轉子旋轉,優點是比單拍獲得更多輸出力矩,缺點消耗更多能量;(3).半拍方式:工作時則讓兩個繞組和單個繞組通電方式交替進行;3.四線雙性步進電機原理圖
4.UDN2916介紹
UDN2916LB是SANKEN公司推出的一款兩相步進電機雙極驅動整合電路晶片,能夠驅動雙繞組雙極步進電機,適用的電機電壓範圍為10~45V,邏輯電壓不能超過7V;通過內部脈寬調製控制器(PWM)可實現最大750mA的輸出電流;內建1/3和2/3分割器;邏輯輸入實現1相/2相/W1-2phase激勵模式;內建過熱和交叉電流保護功能;內建防止低壓誤操作等保護功能。UDN2916LB內部結構,晶片有兩組電路構成,每組電路由PWM控制器、電橋及輔助電路組成。
5.實驗說明
本實驗通過控制步進電機以半步八拍的方式轉動,學習步進電機的原理與引用。接線為步進電機接M_OUT,P1–P1.0,P2–P1.1,I01–P1.2,I02–P1.3,I11–P1.4,I12–P1.5。
6.常式原始碼
/************************************** > File Name: 四線雙極性步進電機 > Author: pengshp > Mail: pengshp3@outlook.com > Date: 2015年 7 月 26 日***************************************/#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit PH1=P1^0;//A線圈電流量控制sbit PH2=P1^1;//B線圈電流量控制sbit T01=P1^2;//UDN2916電流量控制sbit T02=P1^3;sbit T11=P1^4;sbit T12=P1^5;void Delay(uchar t)//延時函數{ uchar a; while(t--) { for(a=70;a>0;a--); }}/*半步八拍節拍控制函數*/void Step(){ /*A/ A拍反向電流*/ PH1=0;//PH1為0,A組線圈為反向電流 T01=0;//以最大電流輸出 T11=0; PH2=1;//PH2為1,B線圈為正向電流 T02=1;//關閉電流輸出 T12=1; Delay(2); /*A/B AB拍,A為反向電流,B為正向電流*/ PH1=1;//PH1為1,A組線圈為正向電流 T01=0;//以最大電流輸出 T11=0; PH2=1;//PH2為1,B線圈為正向電流 T02=1;//關閉電流輸出 T12=1; Delay(2); /*B B為正向電流*/ PH1=0;//PH1為0,A組線圈為反向電流 T01=1;//關閉電流輸出 T11=1; PH2=1;//PH2為1,B線圈為正向電流 T02=0;// T12=0; Delay(2); /*AB AB都為正向電流*/ PH1=1;//PH1為1,A組線圈為正向電流 T01=0;//以最大電流輸出 T11=0; PH2=1;//PH2為1,B線圈為正向電流 T02=0;//以最大電流輸出 T12=0; Delay(2); /*A A為正向電流*/ PH1=1;//PH1為1,A組線圈為正向電流 T01=0;//以最大電流輸出 T11=0; PH2=1;//PH2為1,B線圈為正向電流 T02=1;//關閉電流輸出 T12=1; Delay(2); /*AB/ A為正向電流,B為反向電流*/ PH1=1;//PH1為1,A組線圈為正向電流 T01=0;//以最大電流輸出 T11=0; PH2=0;//PH為0,B線圈為反向電流 T02=0;//以最大電流輸出 T12=0; Delay(2); /*B/ B為反向電流*/ PH1=1;//PH1為1,A組線圈為正向電流 T01=1;//關閉電流輸出 T11=1; PH2=0;//PH2為0,B線圈為反向電流 T02=0;//關閉電流輸出 T12=0; Delay(2); /*A/B/ AB都為反向電流*/ PH1=0;//PH1為0,A組線圈為反向電流 T01=0;//以最大電流輸出 T11=0; PH2=0;//PH2為0,B線圈為反向電流 T02=0;//以最大電流輸出 T12=0; Delay(2);}void main(){ while(1) { Step(); }}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。