51單片機的步進電機控制,正轉反轉等

2020-12-06 電子產品世界

步進電機應用廣泛,

本文引用地址:http://www.eepw.com.cn/article/201808/384872.htm

例如印表機、磁碟驅動器、玩具、汽車雨刷、手機震動、機械夾具、刻錄機等各種機械控制場合

一些概念:

拍數N

定子控制繞組每改變一次通電方式,即為一拍

一個磁場通電周期是 A-B-C-D-A

完成一個磁場周期性變化所需脈衝數,

也指電機轉過一個齒距角所需脈衝數,用N表示

拍數又等於相數的1倍或2倍,

以四相電機為例,

有4相4拍, A-B-C-D-A...

4相8拍, A-AB-B-BC-C-CD-D-DA-A...

齒距角θz

一個通電循環周期(比如4拍)轉子轉過一個齒距角

齒距角又等於360除以轉子齒數Z, θz=360/Z

步距角θs

步距角,即在沒有減速齒輪的情況下,對於一個脈衝信號,轉子所轉過的機械角度.

也就是說,每一拍轉子轉過的角度稱之為步距角,通常用θs表示

θs=齒距角/拍數

θs=360/(N*Z)

步距角的誤差不會長期積累,只與輸入脈衝信號數相對應,

可以組成結構較為簡單而又具有一定精度的開環控制系統,

也可以在要求更高精度時組成閉環系統。

轉速X

每分鐘電機轉了多少轉?設脈衝頻率f

一個脈衝,轉子轉過角度為1/(ZN),

X=60*f/(ZN) 拍數與齒數表示法

=(f*θs)/6 步距角表示法

24BYJ48-5v 減速永磁步進電機

功能特點:

採用ULN2003驅動,使用方便,帶齒輪減速,噪音低,運轉平穩,5V即可驅動,

器件參數:

1.額定電壓:5-10V DC

2.直流電阻:60Ω±7%(25℃).

3.減速比:1/64

4.步距角:5.625°*(1/64), 含減速比

5.驅動方式:4相8拍

6.牽入轉距:≥350gf.cm(工作頻率:100PPS)

7.打滑扭力:800~1300gf.cm

8.溫升:≤55K(5VDC 工作頻率:100PPS)

9.噪音:≤35dB(空載,100PPS,水平距馬達10cm)

10.絕緣耐壓:600V AC/1秒

11.引線拉力強度:1Kgf/條

12.接線方式:5線4相

1.VCC 紅色

2.A 橙色

3.B 黃色

4.C 粉色

5.D 藍色

============================================================

C代碼

#include my51.h

//4相8拍

u8 code tableCCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆時針旋轉相序表

u8 code tableCW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //順時針旋轉相序表

sbit S3=P3^5; //反轉 按鍵

sbit S4=P3^6; //正轉 按鍵

sbit S5=P3^4; //停止 按鍵

void motorTurn_ccw() //轉1圈,逆時針

{

u8 i,j;

for(j=0;j8;j++) //電機內部的轉子旋轉一周

{

if(S5==0) //按鍵沒處理抖動

{

break; //如果停止鍵按下,退出此循環

}

for(i=0;i8;i++) //旋轉45度, 8*5.625°=45°

{

P1=tableCCW[i];

delayms(2); //調節轉速

}

}

}

void motorTurn_cw() //轉1圈 ,順時針

{

u8 i,j;

for(j=0;j8;j++) //8*45°=360°

{

if(S5==0)

{

break; //如果停止鍵按下,退出此循環

}

for(i=0;i8;i++) //旋轉45度,8*5.625°=45°

{

P1=tableCW[i];

delayms(2); //調節轉速

}

}

}

void main()

{

u8 r;

u8 N=64; //減速步進電機,減速比1/64,所以N=64時,步進電機外主軸轉一圈

P1=0xff; _nop_();

ledLock= LOCK; //我們的P1口接有8個led燈,先鎖定,不要讓它們亮 ,節能環保

while(1)

{

if(S3==0) //按鍵了

{

for(r=0;r

{

motorTurn_ccw(); //電機逆時針轉

if(S5==0)

{

break; //俺S5鍵立馬停止

}

}

}

else if(S4==0)

{

for(r=0;r

{

motorTurn_cw(); //電機順時針轉

if(S5==0)

{

break;

}

}

}

else

{

P1=0xf0; //平時也是停止的

}

}

}

相關焦點

  • 單片機控制步進電機正反轉
    C語言範例:/*******************************************************************/*/* ME300系列單片機開發系統演示程序-步進電機鍵控正反轉實驗/*/* 郵箱: gguoqing
  • 單片機控制步進電機的正反轉
    呵呵,這次弄這個程序用了我兩年的時間,終於把我們正反轉程序寫成功並調試成功了,新年收到很多朋友給我的賀卡和祝福,不過,我覺得今天這個程序也是送給自己最好的禮物吧,學單片機真的有時候會很痛苦,一個程序當你怎麼編也編不出來的時候,有時候真的讓你夠難受的,失敗的那種感覺,也許只有學單片機的朋友才能夠體會得了,但是當一個程序編了好久,
  • 51單片機驅動步進電機__終極(完整版)
    在這裡介紹一下用51單片機驅動步進電機的方法。 這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈衝完成!!! 該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。
  • 用51單片機控制兩相四線步進電機
    最近學習步進電機的驅動原理,照著教材自己實踐了一下用ULN2003驅動28BYJ-48兩相5線步進電機,可以正常轉動。手頭有一個舊光碟機,拆開發現裡面有三個電機,其中有一個控制雷射頭尋跡的兩相四線步進電機,我就用51的單片機讓它也轉起來。一開始照葫蘆畫瓢用ULN2003驅動,結果發現無論如何也不行。
  • 單片機控制步進電機的原理
    本資料詳細介紹鄧步進電機的工作原理以及單片機控制步進電機的特點。步進電機是數字控制電機,它將脈衝信號轉變成角位移,即給一個脈衝信號,步進電機就轉動一個角度,因此非常適合於單片機控制。    步進電機可分為反應式步進電機、永磁式步進電機和混合式步進電機。
  • 51單片機控制步進電機驅動器工作原理
    步進電機在控制系統中具有廣泛的應用。它可以把脈衝信號轉換成角位移,並且可用作電磁製動輪、電磁差分器、或角位移發生器等。有時從一些舊設備上拆下的步進電機(這種電機一般沒有損壞)要改作它用,一般需自己設計驅動器。本文介紹的就是為從一日本產舊式印表機上拆下的步進電機而設計的驅動器。
  • 51單片機與TA8435的步進電機細分控制
    1 步進電機   步進電動機是純粹的數字控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,
  • 單片機控制步進電機驅動器工作原理
    使步進電機隨著不同的脈衝信號分別作正轉、反轉、加速、減速和停止等動作。圖中L1為步進電機的一相繞組。AT89C2051選用頻率22MHz的晶振,選用較高晶振的目的是為了在方式2下儘量減小AT89C2051對上位機脈衝信號周期的影響。  圖3中的RL1~RL4為繞組內阻,50Ω電阻是一外接電阻,起限流作用,也是一個改善迴路時間常數的元件。
  • (開源)基於51單片機的步進電機控制
    //數碼管位 高位低位//四個按鍵控制步進電機:正轉,反轉,加1,減1//上電時電機啟動,數碼管上顯示速度最小檔
  • 51單片機精確控制步進電機(有TB6600驅動)
    設備:51單片機開發板、TB6600驅動器、57BYG250B步進電機(二相)、直流開關電源。直流電源給驅動器供電,單片機給驅動器輸入脈衝,驅動器驅動步進電機。程序使用定時器中斷精確控制電機轉動(不考慮失步)。比如我採用16倍細分,則需給驅動輸入3200個脈衝,驅動才會使電機轉一圈,下面程序中1秒發送200個脈衝,則相應的電機16秒轉一圈。
  • 基於MCS-51單片機和步進電機實現鍋爐筒壁孔加工控制系統的設計
    基於MCS-51單片機和步進電機實現鍋爐筒壁孔加工控制系統的設計 佚名 發表於 2020-04-15 09:28:34 1、前 言 為實現鍋爐筒壁孔加工自動化而設計的數控系統
  • 用單片機和CPLD實現步進電機的控制
    同時單片機非常適合應用於需要複雜的控制算法的場合。因此本設計採用的方法是:用單片機採集現場信號後計算出步進電機運轉所需的控制信息後,再傳給CPLD,CPLD把接收到的信息轉換成步進電機實際的控制信號(運轉方向、運轉速度)輸出給電機的驅動電路。這樣的好處是單片機與CPLD各行其是。
  • 51單片機驅動步進電機電路及程序
    在這裡介紹一下用51單片機驅動步進電機的方法。本文引用地址:http://www.eepw.com.cn/article/173250.htm  這款步進電機的驅動電壓12V,步進角為 7.5度 .
  • 單片機對儀表步進電機的細分控制
    在非超載的情況下,電機轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,即給電機某相線圈加一脈衝信號,電機則轉過一個步距角。這一線性關係的存在,加上步進電機只有周期性的誤差而無累積誤差等特點,使得在速度、位置等控制領域用步進電機來控制變得非常簡單。雖然步進電機已被廣泛地應用,但步進電機並不像普通的直流電機、交流電機那樣在常規下使用。
  • 步進電機控制程序(c語言+51單片機)
    齒輪數 , 中斷1次 加 1*/uint set_round_num = 0; /* 播碼盤設置 圈數 */uint set_pwm_width = 0; /* 播碼盤設置 步進電機 正向速度 */bit one_round_flg = 0;sbit led_1000 = P0^7; //use for displaysbit
  • 51單片機開發板上步進電機的總結經驗
    51hei單片機開發板上的引腳對應,也就是插上了相應的雙排針跳線帽和杜邦線,然後自己搗鼓了2個小時對照一些資料寫了一個程序燒了進STC89C52RC上,上電......哪有一次就成功?折騰了一陣子發現是四個I/O口引腳接得不對,改正過來後,再上電........還是不成功,仔陣檢查過硬體電路連接後發現沒有錯誤,於是我懷疑起了程序來,經研究,發現此程序並不適合此電機及連線圖,自己一時大意竟把原該輸出負脈衝的相勵磁脈衝順序變成正的了,呵呵,改了一下之後,發現可以了.電機終於會轉了...這時已是前天晚上的深夜3點多了...
  • 51單片機控制四相步進電機
    接觸單片機快兩年了,不過只是非常業餘的興趣,實踐卻不多,到現在還算是個初學者吧。這幾天給自己的任務就是搞定步進電機的單片機控制。以前曾看過有關步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。
  • 單片機驅動電機電路
    51單片機驅動步進電機電路   在這裡介紹一下用51單片機驅動步進電機的方法。   這款步進電機的驅動電壓12V,步進角為 7.5度 。 一圈 360 度 , 需要 48 個脈衝完成!   該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5: $、6:黑色。採用51驅動ULN2003的方法進行驅動。ULN2003的驅動直接用單片機系統的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。
  • PLC實現步進電機正反轉和調速控制
    其中:步進電機的方向控制,只需要通過控制U/D端的On和Off就能決定電機的正轉或反轉;將光耦隔離的脈衝信號輸入到CP端就能決定步進電機的速度和步數;控制FREE信號就能使電機處於自由狀態。因此PLC的控制程序相當簡單,只需通過PLC的輸出就能控制步進電機的方向、轉速和步數。不必通過PLC控制電機換相的邏輯關係,也不必另外添加驅動電路。
  • 51單片機學習之3-步進電機
    用於增強單片機IO口的驅動能力。ULN2003是高耐壓、大電流達林頓陳列,由七個矽NPN達林頓管組成。ULN2003是大電流驅動陣列,多用於單片機、智能儀表、PLC、數字量輸出卡等控制電路中。可直接驅動繼電器等負載。