51單片機驅動步進電機__終極(完整版)

2020-12-05 電子產品世界
在這裡介紹一下用51單片機驅動步進電機的方法。

這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈衝完成!!!

該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。

採用51驅動ULN2003的方法進行驅動。

ULN2003的驅動直接用單片機系統的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。

;******************************************************************************

;************************* 步進電機的驅動*************************************** ; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19

;---------------------------------------------------------------------------------

; 步進電機的驅動信號必須為 脈衝信號!!! 轉動的速度和脈衝的頻率成正比!!!

; 本步進電機步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈衝完成!!!

;---------------------------------------------------------------------------------

; A組線圈對應 P2.4

; B組線圈對應 P2.5

; C組線圈對應 P2.6

; D組線圈對應 P2.7

; 正轉次序: AB組--BC組--CD組--DA組 (即一個脈衝,正轉 7.5 度)

;----------------------------------------------------------------------------------

;----------------------------正轉-------------------------- ORG 0000H LJMP MAIN ORG 0100H

MAIN:

MOV R3,#144 正轉 3 圈共 144 脈衝 START: MOV R0,#00H START1: MOV P2,#00H MOV A,R0

MOV DPTR,#TABLE MOVC A,@A+DPTR

JZ START 對 A 的判斷,當 A = 0 時則轉到 START MOV P2,A

LCALL DELAY INC R0

DJNZ R3,START1

MOV P2,#00H LCALL DELAY1

;-----------------------------反轉------------------------

MOV R3,#144 反轉一圈共 144 個脈衝 START2:

MOV P2,#00H MOV R0,#05 START3: MOV A,R0

MOV DPTR,#TABLE MOVC A,@A+DPTR JZ START2 MOV P2,A CALL DELAY INC R0

DJNZ R3,START3 MOV P2,#00H

LCALL DELAY1 LJMP MAIN

DELAY: MOV R7,#40步進電機的轉速M3: MOV R6,#248 DJNZ R6,$ DJNZ R7,M3

RET

DELAY1: MOV R4,#20 2S 延時子程序 DEL2: MOV R3,#200 DEL3: MOV R2,#250 DJNZ R2,$ DJNZ R3,DEL3 DJNZ R4,DEL2 RET TABLE:

DB 30H,60H,0C0H,90H 正轉表 DB 00 正轉結束

DB 30H,90H,0C0H,60H 反轉表 DB 00 反轉結束 END

51單片機控制四相步進電機

拿 到步進電機,根據以前看書對四相步進電機的了解,我對它進行了初步的測試,就是將5伏電源的正端接上最邊上兩根褐色的線,然後用5伏電源的地線分別和另外 四根線(紅、蘭、白、橙)依次接觸,發現每接觸一下,步進電機便轉動一個角度,來回五次,電機剛好轉一圈,說明此步進電機的步進角度為 360/(4×5)=18度。地線與四線接觸的順序相反,電機的轉向也相反。

此步進電機,則只需分別依次給四線一定時間的脈衝電流,電機便可連續轉動起來。

通過改變脈衝電流的時間間隔,就可以實現對轉速的控制;通過改變給四線脈衝電流的順序,則可實現對轉向的控制。所以,設計了如下電路圖:

C51程序代碼為: 代碼一

#include static unsigned int count; static unsigned int endcount; void delay(); void main(void) {

count = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0;

EA = 1; //允許CPU中斷

TMOD = 0x11; //設定時器0和1為16位模式1

ET0 = 1; //定時器0中斷允許 TH0 = 0xFC;

TL0 = 0x18; //設定時每隔1ms中斷一次 TR0 = 1; //開始計數 startrun: P1_3 = 0; P1_0 = 1; delay();

P1_0 = 0;

P1_1 = 1; delay(); P1_1 = 0; P1_2 = 1; delay(); P1_2 = 0; P1_3 = 1; delay();

goto startrun; }

//定時器0中斷處理

void timeint(void) interrupt 1 {

TH0=0xFC;

TL0=0x18; //設定時每隔1ms中斷一次 count++; }

void delay()

{

endcount=2; count=0;

do{}while(count

將上面的程序編譯,用ISP下載線下載至單片機運行,步進電機便轉動起來了,初步告捷!




技術專區

相關焦點

  • 51單片機驅動步進電機電路及程序
    在這裡介紹一下用51單片機驅動步進電機的方法。本文引用地址:http://www.eepw.com.cn/article/173250.htm  這款步進電機的驅動電壓12V,步進角為 7.5度 .
  • 51單片機ULN2003驅動步進電機的典型應用電路圖解
    打開APP 51單片機ULN2003驅動步進電機的典型應用電路圖解 發表於 2017-10-24 10:19:31   51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。
  • 51單片機精確控制步進電機(有TB6600驅動)
    設備:51單片機開發板、TB6600驅動器、57BYG250B步進電機(二相)、直流開關電源。直流電源給驅動器供電,單片機給驅動器輸入脈衝,驅動器驅動步進電機。程序使用定時器中斷精確控制電機轉動(不考慮失步)。比如我採用16倍細分,則需給驅動輸入3200個脈衝,驅動才會使電機轉一圈,下面程序中1秒發送200個脈衝,則相應的電機16秒轉一圈。
  • 51單片機學習之3-步進電機
    用於增強單片機IO口的驅動能力。ULN2003是高耐壓、大電流達林頓陳列,由七個矽NPN達林頓管組成。ULN2003是大電流驅動陣列,多用於單片機、智能儀表、PLC、數字量輸出卡等控制電路中。可直接驅動繼電器等負載。
  • 單片機驅動電機電路
    51單片機驅動步進電機電路   在這裡介紹一下用51單片機驅動步進電機的方法。   這款步進電機的驅動電壓12V,步進角為 7.5度 。 一圈 360 度 , 需要 48 個脈衝完成!   該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5: $、6:黑色。採用51驅動ULN2003的方法進行驅動。ULN2003的驅動直接用單片機系統的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。
  • 單片機控制步進電機的原理
    本資料詳細介紹鄧步進電機的工作原理以及單片機控制步進電機的特點。步進電機是數字控制電機,它將脈衝信號轉變成角位移,即給一個脈衝信號,步進電機就轉動一個角度,因此非常適合於單片機控制。    步進電機可分為反應式步進電機、永磁式步進電機和混合式步進電機。
  • 51單片機PWM細分控制步進電機的研究
    因為這樣可以是步進電機運行平穩、減小噪音、增大轉速(MAX的)、增加力矩……為什麼要強調是51單片機呢?因為51單片機沒有硬體PWM模塊,所以只能軟體模擬了……研究這玩意兒,我走了許多彎路,看了許多文獻,最後發現,盡信書不如無書……就用28系列4相5線電機來說吧。
  • 用51單片機控制兩相四線步進電機
    最近學習步進電機的驅動原理,照著教材自己實踐了一下用ULN2003驅動28BYJ-48兩相5線步進電機,可以正常轉動。手頭有一個舊光碟機,拆開發現裡面有三個電機,其中有一個控制雷射頭尋跡的兩相四線步進電機,我就用51的單片機讓它也轉起來。一開始照葫蘆畫瓢用ULN2003驅動,結果發現無論如何也不行。
  • 基於單片機的步進電機開環控制系統
    摘要: 通過ATMEL89C51單片機對步進電機進行控制,主要介紹了步進電機控制器、驅動電路和LED顯示電路的設計, 本文介紹已實現的單片機對步進電機的數字控制系統。該控制系統中,控制器擔負著產生脈衝以及發送、接收控制命令的任務。本文對控制器的設計,尤其是脈衝產生電路的設計作了詳細的介紹。1 系統設計 步進電機開環控制系統框圖如圖1所示。
  • 51單片機開發板上步進電機的總結經驗
    電機,轉子齒數按公式推算可得為8個,步距角應為11.25度,給出的資料那應該叫半步距角.其它的參數均可按照參數圖中進行,電機可以用ULN2003A這個晶片來驅動,我決定先不看51hei官方提供的資料和實例程序,看憑自己的實力能不能讓這個小東西轉動起來,照著圖2的連線圖連了起來(那4個指示燈是我自己加上去的.方便觀察)並且把P1.0,P1.1,P1.2,P1.3四個I/O口和
  • 以單片機為核心的步進電機控制系統驅動設計
    打開APP 以單片機為核心的步進電機控制系統驅動設計 工程師黃明星 發表於 2018-08-07 15:29:17 傳統的細分驅動電路由細分環行分配器、放大器和合成器等部分組成。這種電路應用複雜,靈活性差。本文利用A3967SLB作為步進電機微控晶片,簡化了步進電機的控制實現。由於單片機資源沒有PC豐富,人機界面也沒有PC友好,因此,本文採用了主從式結構,即PC用於管理,單片機用於執行。
  • 51單片機與TA8435的步進電機細分控制
    1 步進電機   步進電動機是純粹的數字控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,
  • 51單片機控制步進電機驅動器工作原理
    本文先介紹該步進電機的工作原理,然後介紹了其驅動器的軟、硬體設計。  1. 步進電機的工作原理  該步進電機為一四相步進電機,採用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。圖1是該四相反應式步進電機工作原理示意圖。
  • 基於MCS-51單片機和步進電機實現鍋爐筒壁孔加工控制系統的設計
    基於MCS-51單片機和步進電機實現鍋爐筒壁孔加工控制系統的設計 佚名 發表於 2020-04-15 09:28:34 1、前 言 為實現鍋爐筒壁孔加工自動化而設計的數控系統
  • 步進電機控制程序(c語言+51單片機)
    #includereg51.h>本文引用地址:http://www.eepw.com.cn/article/162126.htm#define uint unsigned int
  • 51單片機控制四相步進電機
    接觸單片機快兩年了,不過只是非常業餘的興趣,實踐卻不多,到現在還算是個初學者吧。這幾天給自己的任務就是搞定步進電機的單片機控制。以前曾看過有關步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。
  • 單片機實現步進電機控制系統設計的方法
    步進電機是數字控制電機,將脈衝信號轉換成角位移,電機的轉速、停止的位置取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,非超載狀態下,根據上述線性關係,再加上步進電機只有周期性誤差而無累積誤差,因此步進電機適用於單片機控制。步進電機通過輸入脈衝信號進行控制,即電機的總轉動角度由輸入脈衝總數決定,而電機的轉速由脈衝信號頻率決定。步進電機的驅動電路是根據單片機產生的控制信號進行工作。
  • 單片機對儀表步進電機的細分控制
    儀表步進電機本文引用地址:http://www.eepw.com.cn/article/98852.htm  步進電機在非超載的情況下,電機轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,即給電機某相線圈加一脈衝信號,電機則轉過一個步距角。這一線性關係的存在,加上步進電機只有周期性的誤差而無累積誤差等特點,使得在速度、位置等控制領域用步進電機來控制變得非常簡單。雖然步進電機已被廣泛地應用,但步進電機並不像普通的直流電機、交流電機那樣在常規下使用。
  • 步進電機細分驅動電路及原理
    由此可見,步進電機細分驅動的關鍵在於細分步進電機各相勵磁繞組中的電流。步進電機細分驅動電路為了對步進電機的相電流進行控制,從而達到細分步進電機步距角的目的,人們曾設計了很多種步進電機的細分驅動電路。隨著微型計算機的發展,特別是單片計算機的出現,為步進電機的細分驅動帶來了便利。目前,步進電機細分驅動電路大多數都採用單片微機控制,它們的構成框圖如圖4 所示。單片機根據要求的步距角計算出各相繞組中通過的電流值,並輸出到數模轉換器(DPA) 中,由DPA 把數字量轉換為相應的模擬電壓,經過環形分配器加到各相的功放電路上,控制功放電路給各相繞組通以相應的電流,來實現步進電機的細分。
  • 什麼是步進電機控制器?
    在工業控制中難免會用到步進電機,步進電機如何控制,步進電機的速度、方向、驅動電流等等改如何設置,這就需要用到步進電機控制器,那麼什麼是步進電機控制、步進電機控制器與步進電機驅動器有什麼區別、步進電機分類有哪些、步進電機有哪些應用案例,文章做詳細描述