⑴ 如何使用單片機精確控制步進電機
根據電機相數買個驅動器。然後用單片機產生脈沖來控制電機的轉動以及正反轉。單片機產生脈沖的方法和單片機控制流水燈是一樣的。希望我的回答能給你點思路。
⑵ 哥,步進電機驅動器怎麼用單片機控制啊
步進電機驅動器一般接受的控制信號為:
1、cw+ccw,即正轉脈沖加反轉脈沖
2、pulse+dir,即脈沖加方向
一般驅動器都可以兼容兩種方式,即通過DIP開關選擇採用哪種方式。
如此,你用單片機控制起來就很方便了,用兩個IO口發控制信號就OK了,哪種方式都可以,脈沖的頻率大小決定電機的速度快慢。
當然,你也要注意驅動器需要信號的電壓大小,如果是5V,直接IO相連就行,如果需要12V,那麼需要加個光耦就行了。
⑶ 單片機控制步進電機
但用單片機是不夠的,關鍵是要有個專用的驅動晶元,驅動晶元含有每相電流檢測,當收到單片機相位開關信號時打開電流通路,由電機電感形成三角波電流,到達電機額定電流即停止而維持等待下個相位信號,並且該晶元還有停轉保持半電流控制腳等功能,具體可參考晶元資料,才能根據晶元功能編程,步進電機越轉越快可通過單片機對相應相位腳發控制脈沖,使脈沖頻率變快就可實現,但最高速度受給驅動晶元的主電源電壓有關,電壓低時電感中的三角波電流到不了額定就可能發生不同步。
如果帶有電機控制器的,控制器只有步進輸入脈沖腳,正反轉控制腳,就可對控制器的這兩腳控制,在步進輸入腳脈沖加快就可使轉速加快。
⑷ 步進電機基本控制方法
進電機的基本控制方法有幾下幾種情況:1、採用專用晶元,這樣控制簡單,成本就低,但一般工作電流不大約2A左右,工作電壓不高,36VDC左右;2、採用MCU+功率器件的方式,電流通過模擬電路來控制,MCU提供細分環形分配器,這種方式,控制相對簡單,工作電流和電壓都可以做大,但控制參數一般比較固定,應用不靈活;3、採用DSP實現全數字式控制,控制比較復雜,但控制演算法靈活,可以自動整定不同電機的控制參數。
⑸ 單片機控制步進電機的原理
步進電機控制原理
步進電機是數字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動一個角度,因此非常適合於單片機控制。步進電機可分為反應式步進電機(簡稱VR)、永磁式步進電機(簡稱PM)和混合式步進電機(簡稱HB)。
步進電機區別於其他控制電機的最大特點是,它是通過輸入脈沖信號來進行控制的,即電機的總轉動角度由輸入脈沖數決定,而電機的轉速由脈沖信號頻率決定。
步進電機的驅動電路根據控制信號工作,控制信號由單片機產生。其基本原理作用如下:
(1)控制換相順序
通電換相這一過程稱為脈沖分配。例如:三相步進電機的三拍工作方式,其各相通電順序為A-B-C-D,通電控制脈沖必須嚴格按照這一順序分別控制A,B,C,D相的通斷。
(2)控制步進電機的轉向
如果給定工作方式正序換相通電,步進電機正轉,如果按反序通電換相,則電機就反轉。
(3)控制步進電機的速度
如果給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調整單片機發出的脈沖頻率,就可以對步進電機進行調速。
步進電機是一種可以把脈沖激勵的變化轉換成精確轉子位置增量運動的執行機構,它可將脈沖信號變成電機相應角位移的機械量,從而通過控制脈沖的個數來控制電機轉動的時間,並通過改變脈沖的頻率控制電機運轉的速度。
⑹ 如何使用單片機控制步進電機
先看步進電機控制電機轉動原理,把時序搞清楚,單片機控制驅動按照時序置管腳就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按下觸發一次,標志位取反
}
⑺ 單片機控制步進電機程序
假設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 順序輸出。
⑻ 如何用單片機控制步進電機步數
如何用單片機控制步進電機
步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到准確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
一、步進電機常識
常見的步進電機分三種:永磁式(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切換為低電平即可驅動步進電機運行,注意在切換之前將前一個輸出引腳變為高電平。如果要改變電機的轉動速度只要改變兩次接通之間的時間,而要改變電機的轉動方向,只要改變各線圈接通的順序。
⑼ 單片機怎麼用一個按鈕控制步進電機啟動和停止
單片機用一個按鈕控制步進電機啟動和停止,這很容易的,識別按鍵按下的程序會寫吧,那定義一個位變數,即標志位,如flag,上電後flag=0,為電機停止狀態。每按一次按鍵,flag=!flag,即取反一次,然後再判斷標志位,flag=1,則啟動電機。flag=0,則停止電機。
⑽ 單片機怎麼控制步進電機
ULN2003D 是驅動步進電機的驅動晶元,主要是匹配電機所需的電流。
由於是四相電機,步進電機之所以可以轉動就需要給相繞組提供連續的脈沖,所以需要4個埠來控制四相繞組的工作狀態(P15應該是不需要的),具體的編碼要看電機的拍數;
一旦明白這些,你就可以很容易編寫代碼來控制電機的轉動了,還有在脈沖間你可以設置不同的延時時間來調節電機的轉速。