用51單片機控制兩相四線步進電機

2021-01-11 電子工程專輯

最近學習步進電機的驅動原理,照著教材自己實踐了一下用ULN2003驅動28BYJ-48兩相5線步進電機,可以正常轉動。手頭有一個舊光碟機,拆開發現裡面有三個電機,其中有一個控制雷射頭尋跡的兩相四線步進電機,我就用51的單片機讓它也轉起來。一開始照葫蘆畫瓢用ULN2003驅動,結果發現無論如何也不行。原來ULN2003基本沒輸出電流,只能驅動有公共端的兩相五線、兩相六線步進電機,不能驅動2相4線步進電機。然後改用L293D驅動,可以轉動。

通過按鈕控制正反轉時發現,按鍵釋放後,電機迅速發熱,燙手。用萬用表測量,發現電機A,A-或B,B-直接存在電位差!應該是按鍵釋放時,IN1-IN4沒有歸零。找到問題,就容易解決了。修改程序,可以完美運行,鍵1按下正轉,釋放停下,鍵2按下反轉,釋放停下。IN1-IN4分別接P1口的低四位。工作方式選用8拍。

附上源程序,僅供參考。

#include

#define uint unsigned int

#define uchar unsigned char

sbit K3=P2^5;

sbit K4=P2^4;

//k3正轉。k4反轉。釋放停止

uchar code step_table[]={0x8,0xa,0x2,0x6,0x4,0x5,0x1,0x9};

void delay(unsigned int m)

{

unsigned int i,j;

for(i=m;i>0;i--)

for(j=110;j>0;j--);

}

void xp()//x軸正轉

{

while(!K3)

{

uint i;

for(i=0;i<8;i++)

{

P1=step_table[ i];

delay(10);

}

}

P1=0;//按鍵釋放時,反轉P1停在table某處,導致電機有電壓從而使電機發熱,需要歸零。

}

void xn()//x軸反轉

{

uint i;

while(!K4)

{

for(i=8;i>0;i--)

{

P1=step_table[ i];

delay(10);

}

}

P1=0;//按鍵釋放時,反轉P1停在table某處,導致電機有電壓從而使電機發熱,需要歸零。

}

void main()

{

while(1)

{

if(K3==0)

{

delay(20);

if(K3==0)

{

// LED1=0;

xp();

}

}

if(K4==0)

{

delay(20);

if(K4==0)

{

// LED1=0;

xn();

}

}

}

}

為了方便大家更好的學習,您還可以關注暢學電子和EDA的公眾號,每天推送相關知識,希望能對你的學習有所幫助!


相關焦點

  • 單片機對儀表步進電機的細分控制
    是將電脈衝信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,即給電機某相線圈加一脈衝信號,電機則轉過一個步距角。這一線性關係的存在,加上步進電機只有周期性的誤差而無累積誤差等特點,使得在速度、位置等控制領域用步進電機來控制變得非常簡單。雖然步進電機已被廣泛地應用,但步進電機並不像普通的直流電機、交流電機那樣在常規下使用。
  • 單片機控制步進電機的原理
    本資料詳細介紹鄧步進電機的工作原理以及單片機控制步進電機的特點。步進電機是數字控制電機,它將脈衝信號轉變成角位移,即給一個脈衝信號,步進電機就轉動一個角度,因此非常適合於單片機控制。    步進電機可分為反應式步進電機、永磁式步進電機和混合式步進電機。
  • 用AT89C52單片機作為控制器,設計簡單實用的步進電機控制系統
    通過鍵盤可以對步進電機進行正轉、反轉、加速、減速、停止功能的操作。步進電機運行時的狀態信息可以通過顯示模塊直觀的顯示出來。圖2為鍵盤及顯示模塊硬體原理圖。鍵盤模塊的特點在於用單片機的兩個外部中斷來控制步進電機進行加、減速,即每引入一次外部中斷,步進電機加/減速一次。正轉、反轉、停止按鍵分別由單片機的P3.0、P3.1、P3.4口引入。
  • 51單片機控制四相步進電機
    接觸單片機快兩年了,不過只是非常業餘的興趣,實踐卻不多,到現在還算是個初學者吧。這幾天給自己的任務就是搞定步進電機的單片機控制。以前曾看過有關步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。
  • 51單片機驅動步進電機__終極(完整版)
    在這裡介紹一下用51單片機驅動步進電機的方法。 這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈衝完成!!! 該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。
  • 51單片機學習之3-步進電機
    第八集講解用移位和或運算實現流水燈的方法《51單片機複習筆記2》裡面的代碼。一、蜂鳴器驅動蜂鳴器很簡單,由於51單片機的IO口驅動能力還不足以驅動蜂鳴器,所以需要加一個三極體來做電子開關控制蜂鳴器。(當然也可以用ULN2003)。上面電路圖中其實不接電阻也可以驅動蜂鳴器,當然R26的分支需要去掉。
  • 基於ATMEGA48單片機的儀表步進電機的細分控制
    儀表步進電機本文引用地址:http://www.eepw.com.cn/article/162587.htm  步進電機是將電脈衝信號轉變為角位移或線位移的開環控制元件。
  • 51單片機與TA8435的步進電機細分控制
    1 步進電機   步進電動機是純粹的數字控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,
  • 51單片機精確控制步進電機(有TB6600驅動)
    設備:51單片機開發板、TB6600驅動器、57BYG250B步進電機(二相)、直流開關電源。直流電源給驅動器供電,單片機給驅動器輸入脈衝,驅動器驅動步進電機。程序使用定時器中斷精確控制電機轉動(不考慮失步)。比如我採用16倍細分,則需給驅動輸入3200個脈衝,驅動才會使電機轉一圈,下面程序中1秒發送200個脈衝,則相應的電機16秒轉一圈。
  • 兩相混合式步進電機驅動器設計
    步進電機是一種運用廣泛的控制電機,其特徵是不使用位置反饋迴路就能進行速度控制及定位控制,即所謂的電機開環控制。相對於伺服電機,步進電機有著成本低廉,控制簡單等優點,尤其是兩相混合式步進電機,在工業運動控制系統中有著廣泛的應用。
  • 51單片機控制步進電機驅動器工作原理
    步進電機在控制系統中具有廣泛的應用。它可以把脈衝信號轉換成角位移,並且可用作電磁製動輪、電磁差分器、或角位移發生器等。有時從一些舊設備上拆下的步進電機(這種電機一般沒有損壞)要改作它用,一般需自己設計驅動器。本文介紹的就是為從一日本產舊式印表機上拆下的步進電機而設計的驅動器。
  • 如何將兩相六線與四線步進電機接到驅動器上
    步進電機驅動器上的電機接線端子一般都標有A+,A-,B+B-,其中A+,A-是一組,B+,B-為一組,將兩組端子分別與電機的兩相繞組相連,電機與驅動就接好線了。所以我們接線時必須判斷電機出線哪兩根線是同一相繞組。
  • 51單片機PWM細分控制步進電機的研究
    因為這樣可以是步進電機運行平穩、減小噪音、增大轉速(MAX的)、增加力矩……為什麼要強調是51單片機呢?因為51單片機沒有硬體PWM模塊,所以只能軟體模擬了……研究這玩意兒,我走了許多彎路,看了許多文獻,最後發現,盡信書不如無書……就用28系列4相5線電機來說吧。
  • 單片機控制步進電機正反轉
    原理圖:兩相六線步進電機id=47在ME300B上使用時,可從J7上引出5V電源到步進電機模塊J1上。將J1(ICE)上的P1.0-P1.3用杜邦頭實驗連接線連接到步進電機模塊J2上。;-------------------------------------------------------MAIN: MOVSP,#60H MOVP1,#0F0H ;關閉步進電機,鍵輸入線置高MAIN1: JBK1,MAIN2 ACALLBEEP_BL ;步進電機正轉 ACALLFFW
  • 基於THB6064H的步進電機閉環控制電路設計
    單片機接收來自上位機的時序脈衝信號和方向信號,經驅動放大後送往步進電機來控制步進電機工作;步進電機帶動編碼器同軸旋轉,由編碼器檢測轉角度,並以脈衝的形式反饋到單片機進行核步計數;單片機根據脈衝反饋當量值與給定值進行比較,按照核步算法發出控制指令。如果發生丟步,單片機就會根據差值繼續發送脈衝,把丟掉的步數補上,從而完成步進電機轉動位置的閉環控制。
  • 用單片機和CPLD實現步進電機的控制
    它廣泛用於消費類產品(印表機、照相機)、工業控制(數控工具機、工業機器人)、醫療器械等機電產品中。           通常的步進電機控制方法是採用CPU(PC機、單片機等)配合專用的步進電機驅動控制器來實現,這存在成本較高、各個環  節搭配不便(不同類的電機必須要相應的驅動控制器與之配對)等問題。
  • 步進電機控制程序(c語言+51單片機)
    #includereg51.h>本文引用地址:http://www.eepw.com.cn/article/162126.htm#define uint unsigned int
  • 單片機與TA8435的步進電機細分控制
    1 步進電機 步進電動機是純粹的數字控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數
  • 基於單片機的步進電機開環控制系統
    摘要: 通過ATMEL89C51單片機對步進電機進行控制,主要介紹了步進電機控制器、驅動電路和LED顯示電路的設計,實現了步進電機的開環控制。
  • 兩相四線步進電機時序
    兩相四線步進電機時序   八拍:   八個狀態:1、在 A 與 A-正電壓,B 與 B-不給電懸空;2、在 A 與 A-正電壓,B與 B-也給正電壓;3、A 與 A-不給電壓懸空,B 與 B-正電壓;4、A 與 A-給負電壓,B與B-給正電壓;5、A與A-給負電壓,B 與B-