以單片機為核心的步進電機控制系統驅動設計

2020-12-06 電子發燒友

以單片機為核心的步進電機控制系統驅動設計

工程師黃明星 發表於 2018-08-07 15:29:17

步進電機精度高,慣性小,在不失步的情況下沒有步距誤差積累,特別適用於數字控制的定位系統。傳統的細分驅動電路由細分環行分配器、放大器和合成器等部分組成。這種電路應用複雜,靈活性差。本文利用A3967SLB作為步進電機微控晶片,簡化了步進電機的控制實現。由於單片機資源沒有PC豐富,人機界面也沒有PC友好,因此,本文採用了主從式結構,即PC用於管理,單片機用於執行。

由A3967SLB構成步進電機的驅動部分

A3967SLB是美國Allegro公司生產的PWM恆流控制微步距驅動二相步進電機專用驅動器。它的工作電壓可達30V,驅動電流達750mA,一個A3967SLB即可驅動一臺二相步進電機,可實現8細分驅動。晶片內部的PWM電流控制電路可通過加在PFD的電壓設置為慢、快、混合三種電流衰減模式,如果PFD端的電壓高於0.6Vdd,則選擇慢衰減方式。若低於0.21Vdd,則選擇快衰減模式。處於兩者之間為混合衰減模式。另外,A3967SLB還能提供完善的保護措施,包括抑制瞬態電壓,過熱保護、防止電流直通、欠電壓自鎖等功能。

A3967SLB和微處理器之間不需要附加其他的接口電路,該晶片採用Easy Stepper接口,將8條控制線減少了2條(步長和方向),只要簡單地輸入控制步進電機的脈衝,其內嵌的轉換器就可以實現對步進電機的控制。A3967SLB還需要一些電阻、電容來調整其工作參數,整個驅動電路非常簡單。

如圖1所示,MS1和MS2是步進電機細分解析度選擇的邏輯輸入口;DIR是電機運轉方向的選擇口;RESET用於重置晶片初始值,屏蔽所有外部輸出;STEP為脈衝輸入埠;OUT1A、OUT1B、OUT2A、OUT2B為H橋的兩對輸出埠;ENABLE為使能端;SLEEP為睡眠模式;SENSE1、SENSE2為H橋的電流檢測電阻;REF為參考電壓;GND為邏輯地和電源地;RC1、RC2為H橋固定截止時間模擬輸入。最大限流Imax是由取樣電阻Rs和取樣比較器的輸入參考電壓Vref決定的:

Imax=Vref/8Rs

AT89C52具有8KB Flash,256B內部RAM,32個I/O口線,3個16位定時/記數器,一個6向量兩級中斷系統,一個全雙工串行通信接口,同時片內還有振蕩器和時鐘電路。使用很方便。在這個系統中,單片機主要用來產生控制脈衝並與上位機進行串行通信。

通信電路

在最簡單的RS-232直接傳送通信系統中,只要發送和接受雙方同時準備好,僅用信號發送端(TXD)、信號接收端(RXD)和信號地(GND)3根信號線就可以進行通信;若以應答方式進行數據通信,可使用請求發送(RTS)、清除發送(CTS)或數據終端準備(DTR)、數據裝置準備(DSR)4個信號進行硬體握手。在AT89C52單片機系統中,分別從P3.0和P3.1引出串口線RXD和TXD,通過專用的電平轉換晶片轉換成RS-232接口標準的電平,這樣,二者之間就可以通過RS-232接口進行數位訊號的傳送。單片機可以通過直接傳送或應答握手的方式與主機進行數據通信,但由於握手方式佔用其它埠,而單片機的埠數量有限,所以,計算機與單片機的通信常採用直接傳送的方式。通信電路如圖2所示。

軟體設計

軟體部分的設計主要包括下位機按MCU的接收程序、脈衝控制程序以及上位機的串口發送程序。上位機與下位機之間進行數據通信。上位機的程序主要通過Windows可視化編程VC++實現。

下位機程序主要負責接受PC發來的數據,按照要求產生控制脈衝,具體流程為:首先對要使用的串口進行初始化,然後P2輸出口清零,接著進入住程序的死循環,等待中斷觸發。接收一個字節的數據,RI=1,接著將RI清零。當單片機接收完數據後,標誌位置1。將緩存中的數據存入控制的變量中,以便控制時使用(具體操作時先法數據幀再發啟動幀)。軟體控制流程如圖3所示。

結語

結合以上介紹的基於A3967SLB的步進電機控制系統,在VC++環境下,利用MSComm控制項實現了PC與單片機之間的串行通信。實驗結果表明,用這種方式實現上位機對基於A3967SLB的步進電機的控制系統進行精確的驅動可行有效。

本系統中,利用PC的豐富軟硬體資源和強大的系統功能,可進行一些數據處理、顯示等工作;而從控制器AT89C52則用於實時控制。另外,該系統為開放式結構,便於系統升級。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於單片機的步進電機開環控制系統
    摘要: 通過ATMEL89C51單片機對步進電機進行控制,主要介紹了步進電機控制器、驅動電路和LED顯示電路的設計,在步進電機控制器的設計中,重點闡述了脈衝產生電路以及對速度的控制。該系統具有成本低、控制方便的特點。本文引用地址:http://www.eepw.com.cn/article/173384.htm0 引言 步進電機是一種將電脈衝信號變換成相應的角位移或直線位移的機電執行元件。控制步進電機的輸入脈衝數量、頻率及電機各相繞組的接通順序,可以得到各種需要的運行特性。
  • 用AT89C52單片機作為控制器,設計簡單實用的步進電機控制系統
    作者介紹了基於AT89C52單片機的兩相混合式步進電機控制系統的設計方案,增加了步進電機控制系統設計的靈活性。控制系統採用AT89C52單片機作為控制器,由達林頓功率管BUW49組成的雙H橋式電路作為驅動器,加入按鍵控制及LCD1602顯示。控制系統的電路結構簡單、設計思路清晰。實驗表明,控制系統操作簡單、運行可靠,具有較強的實用性。
  • 單片機控制步進電機的原理
    本資料詳細介紹鄧步進電機的工作原理以及單片機控制步進電機的特點。步進電機是數字控制電機,它將脈衝信號轉變成角位移,即給一個脈衝信號,步進電機就轉動一個角度,因此非常適合於單片機控制。    步進電機可分為反應式步進電機、永磁式步進電機和混合式步進電機。
  • 單片機實現步進電機控制系統設計的方法
    因此,單片機通過向步進電機驅動電路發送控制信號就能實現對步進電機的控制。 1 系統設計原理 步進電機控制系統主要由單片機、鍵盤LED、驅動/放大和PC上位機等4個模塊組成,其中PC機模塊是軟體控制部分,該控制系統可實現的功能:1)通過鍵盤啟動/暫停步進電機、設置步進電機的轉速和改變步進電機的轉向;2)通過LED管顯示步進的轉速和轉向等工作狀態;3)實現三相或四相步進電機的控制:4)通過PC上位機實現對步進電機的控制
  • 基於MCS-51單片機和步進電機實現鍋爐筒壁孔加工控制系統的設計
    基於MCS-51單片機和步進電機實現鍋爐筒壁孔加工控制系統的設計 佚名 發表於 2020-04-15 09:28:34 1、前 言 為實現鍋爐筒壁孔加工自動化而設計的數控系統
  • 單片機對儀表步進電機的細分控制
    是將電脈衝信號轉變為角位移或線位移的開環控制元件。它必須在雙環形脈衝信號、功率驅動電路等組成控制系統下使用。  儀表步進電機屬於步進電機中體積、功耗較小的類別,可以由單片機或專用晶片的引腳直接驅動,不需外接驅動器,因而在儀表中被用於指針的旋轉控制。
  • 51單片機驅動步進電機__終極(完整版)
    在這裡介紹一下用51單片機驅動步進電機的方法。 這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈衝完成!!! 該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。
  • 用單片機和CPLD實現步進電機的控制
    它廣泛用於消費類產品(印表機、照相機)、工業控制(數控工具機、工業機器人)、醫療器械等機電產品中。           通常的步進電機控制方法是採用CPU(PC機、單片機等)配合專用的步進電機驅動控制器來實現,這存在成本較高、各個環  節搭配不便(不同類的電機必須要相應的驅動控制器與之配對)等問題。
  • 基於THB6064H的步進電機閉環控制電路設計
    由於步進電機沒有積累誤差,容易實現較高精度的位移和速度控制,被廣泛用於精確控制領域。由步進電機與驅動電路組成的開環數控系統簡單並且價格低廉,但有時存在振蕩和失步現象,故在複雜電磁環境下或是對精度要求較高的場合下,必須加入反饋電路組成高性能的閉環數控系統[1]。本文採用旋轉編碼器作為反饋器件對步進電機實行閉環控制。
  • 單片機控制步進電機驅動器工作原理
    步進電機在控制系統中具有廣泛的應用。它可以把脈衝信號轉換成角位移,並且可用作電磁製動輪、電磁差分器、或角位移發生器等。  有時從一些舊設備上拆下的步進電機(這種電機一般沒有損壞)要改作它用,一般需自己設計驅動器。
  • 基於單片機的步進電機加減速控制
    如果勵磁頻率選擇不當,電機不能夠移到新的位置,那麼實際的負載位置相對控制器所期待的位置出現永久誤差,即發生失步現象或過衝現象。因此步進電機開環控制系統中,如何防止失步和過衝是開環控制系統能否正常運行的關鍵。本設計使用SPMC75F2413A作為該系統設計的控制器。SPMC75F2413A是μ』nSPTM系列產品的一個新成員,是凌陽科技新推出的一個16位結構的微控制器。
  • 51單片機精確控制步進電機(有TB6600驅動)
    設備:51單片機開發板、TB6600驅動器、57BYG250B步進電機(二相)、直流開關電源。直流電源給驅動器供電,單片機給驅動器輸入脈衝,驅動器驅動步進電機。程序使用定時器中斷精確控制電機轉動(不考慮失步)。比如我採用16倍細分,則需給驅動輸入3200個脈衝,驅動才會使電機轉一圈,下面程序中1秒發送200個脈衝,則相應的電機16秒轉一圈。
  • 基於ATMEGA48單片機的儀表步進電機的細分控制
    儀表步進電機本文引用地址:http://www.eepw.com.cn/article/162587.htm  步進電機是將電脈衝信號轉變為角位移或線位移的開環控制元件。
  • 單片機驅動電機電路
    51單片機驅動步進電機電路   在這裡介紹一下用51單片機驅動步進電機的方法。   這款步進電機的驅動電壓12V,步進角為 7.5度 。 一圈 360 度 , 需要 48 個脈衝完成!   該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5: $、6:黑色。採用51驅動ULN2003的方法進行驅動。ULN2003的驅動直接用單片機系統的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。
  • 51單片機控制步進電機驅動器工作原理
    步進電機在控制系統中具有廣泛的應用。它可以把脈衝信號轉換成角位移,並且可用作電磁製動輪、電磁差分器、或角位移發生器等。有時從一些舊設備上拆下的步進電機(這種電機一般沒有損壞)要改作它用,一般需自己設計驅動器。本文介紹的就是為從一日本產舊式印表機上拆下的步進電機而設計的驅動器。
  • 舞蹈機器人步進電機驅動電路和程序設計
    我們利用了單片機的I/O埠,通過74373鎖 存,由74LS244驅動,ULN2003對信號進行放大。8個電機共用4bit I/O埠作為數據總線,向電機傳送步進脈衝。每個電機分配1bit的I/O埠用作74373鎖存信號,鎖存步進電機四相脈衝,經ULN2003放大到 12V驅動電機運轉。
  • 51單片機驅動步進電機電路及程序
    在這裡介紹一下用51單片機驅動步進電機的方法。本文引用地址:http://www.eepw.com.cn/article/173250.htm  這款步進電機的驅動電壓12V,步進角為 7.5度 .
  • 單片機與TA8435的步進電機細分控制
    1 步進電機 步進電動機是純粹的數字控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數
  • 步進電機控制系統的設計方案
    0 引言步進電機是將電脈衝信號轉變為角位移或線位移的開環控制電機,輸入脈衝總數控制步進電機的總旋轉角度,電機的速度由每秒輸入脈衝數目所決定,因此易實現機械位置的精準控制
  • 一種紅外遙控式步進電機控制器的設計與實現
    摘要:介紹了以89C2051單片機為核心,針對步進電機在手動和自動控制模式的基礎上,設計出能夠實現遙控操作的控制器。以四相五線步進電機為研究對象,以集成紅外接收器接收遙控器發來的信號作為輸入信號,並送單片機進行解碼,單片機根據接收的輸入信號進行運算處理後,發出控制命令送步進驅動器,驅動步進電機工作。實現了步進電機的手動、自動及遙控方式下的正反轉,還實現定時時鐘控制以及LCD狀態顯示等功能。