㈠ 單片機中怎樣用io口驅動電機
第一步:先在Proteus軟體中設計模擬電路原理圖。
第二步:再在Keil C51軟體中編寫且編譯程序,程序後綴必須是.c。然後在打開的「Option for Target『Target 1』」選項卡,「Target」標簽下頻率設置為「11.0592」, 「Output」標簽下,將「Creat HEX File」項打勾選中,設置生成一個.hex文件。
第三步:接著將.hex文件導入原理圖中U1晶元。雙擊U1,打開Edit Component對話框,選擇生成的hex文件。
第四步:最後觀察設計的電路圖是否能得到預想的效果,若不能,進行檢查,找到毛病且糾正。
運行結果:
附:原程序
#include <REG52.H> #include <INTRINS.H>
unsigned char ucMotorDrvPuls;
#define OUTPUT P2 #define INPUT P1
sbit STARTUP=P1^7; sbit FORREV=P1^6;
㈡ 單片機直流電機調速系統設計
論文題目:直流電動機調速器硬體設計
專業:自動化
本科生:劉小煜 (簽名)____
指導教師:胡曉東 (簽名)____
直流電動機調速器硬體設計
摘 要
直流電動機廣泛應用於各種場合,為使機械設備以合理速度進行工作則需要對直流電機進行調速。該實驗中搭建了基於C8051F020單片機的轉速單閉環調速系統,利用PWM信號改變電動機電樞電壓,並由軟體完成轉速單閉環PI控制,旨在實現直流電動機的平滑調速,並對PI控制原理及其參數的確定進行更深的理解。實驗結果顯示,控制8位PWM信號輸出可平滑改變電動機電樞電壓,實現電動機升速、降速及反轉等功能。實驗中使用霍爾元件進行電動機轉速的檢測、反饋。期望轉速則可通過功能按鍵給定。當選擇比例參數為0.08、積分參數為0.01時,電機轉速可以在3秒左右達到穩定。由實驗結果知,該單閉環調速系統可對直流電機進行調速,達到預期效果。
關鍵字:直流電機, C8051F020,PWM,調速,數字式
Subject: Hardware Design of Speed Regulator for DC motor
Major: Automation
Name: Xiao yu Liu (Signature)____
Instructor:Xiao dong Hu (Signature) ____
Hardware Design of Speed Regulator for DC motor
Abstract
The dc motor is a widely used machine in various occasions.The speed regulaiting systerm is used to satisfy the requirement that the speed of dc motor be controlled over a range in some applications. In this experiment,the digital Close-loop control systerm is based on C8051F020 SCM.It used PI regulator and PWM to regulate the speed of dc motor. The method of speed regulating of dc motor is discussed in this paper and, make a deep understanding about PI regulator.According to experiment ,the armature voltage can be controlled linearnized with regulating the 8 bit PWM.So the dc motor can accelerate or decelerate or reverse.In experiment, hall component is used as a detector and feed back the speed .The expecting speed can be given by key-press.With using the PI regulator,the dc motor will have a stable speed in ten seconds when choose P value as 0.8 and I value as 0.01. At last,the experiment shows that the speed regulating systerm can work as expected.
Key words: dc motor,C8051F020,PWM,speed regulating,digital
目錄
第一章 緒論 1
1.1直流調速系統發展概況 1
1.2 國內外發展概況 2
1.2.1 國內發展概況 2
1.2.2 國外發展概況 3
1.2.3 總結 4
1.3 本課題研究目的及意義 4
1.4 論文主要研究內容 4
第二章 直流電動機調速器工作原理 6
2.1 直流電機調速方法及原理 6
2.2直流電機PWM(脈寬調制)調速工作原理 7
2.3 轉速負反饋單閉環直流調速系統原理 11
2.3.1 單閉環直流調速系統的組成 11
2.3.2速度負反饋單閉環系統的靜特性 12
2.3.3轉速負反饋單閉環系統的基本特徵 13
2.3.4轉速負反饋單閉環系統的局限性 14
2.4 採用PI調節器的單閉環無靜差調速系統 15
2.5 數字式轉速負反饋單閉環系統原理 17
2.5.1原理框圖 17
2.5.2 數字式PI調節器設計原理 18
第三章 直流電動機調速器硬體設計 20
3.1 系統硬體設計總體方案及框圖 20
3.1.1系統硬體設計總體方案 20
3.1.2 總體框圖 20
3.2 系統硬體設計 20
3.2.1 C8051F020單片機 20
3.2.1.1 單片機簡介 20
3.2.1.2 使用可編程定時器/計數器陣列獲得8位PWM信號 23
3.2.1.3 單片機埠配置 23
3.2.2主電路 25
3.2.3 LED顯示電路 26
3.2.4 按鍵控制電路 27
3.2.5 轉速檢測、反饋電路 28
3.2.6 12V電源電路 30
3.3硬體設計總結 31
第四章 實驗運行結果及討論 32
4.1 實驗條件及運行結果 32
4.1.1 開環系統運行結果 32
4.1.2 單閉環系統運行結果 32
4.2 結果分析及討論 32
4.3 實驗中遇到的問題及討論 33
結論 34
致謝 35
參考文獻 36
論文小結 38
附錄1 直流電動機調速器硬體設計電路圖 39
附錄2 直流電動機控制系統程序清單 42
附錄3 硬體實物圖 57
第一章 緒論
1.1直流調速系統發展概況
在現代工業中,電動機作為電能轉換的傳動裝置被廣泛應用於機械、冶金、石油化學、國防等工業部門中,隨著對生產工藝、產品質量的要求不斷提高和產量的增長,越來越多的生產機械要求能實現自動調速。
在可調速傳動系統中,按照傳動電動機的類型來分,可分為兩大類:直流調速系統和交流調速系統。交流電動機直流具有結構簡單、價格低廉、維修簡便、轉動慣量小等優點,但主要缺點為調速較為困難。相比之下,直流電動機雖然存在結構復雜、價格較高、維修麻煩等缺點,但由於具有較大的起動轉矩和良好的起、制動性能以及易於在寬范圍內實現平滑調速,因此直流調速系統至今仍是自動調速系統的主要形式。
直流調速系統的發展得力於微電子技術、電力電子技術、感測器技術、永磁材料技術、自動控制技術和微機應用技術的最新發展成就。正是這些技術的進步使直流調速系統發生翻天覆地的變化。其中電機的控制部分已經由模擬控制逐漸讓位於以單片機為主的微處理器控制,形成數字與模擬的混合控制系統和純數字控制系統,並正向全數字控制方向快速發展。電動機的驅動部分所用的功率器件亦經歷了幾次更新換代。目前開關速度更快、控制更容易的全控型功率器件MOSFET和IGBT成為主流。功率器件控制條件的變化和微電子技術的使用也使新型的電動機控制方法能夠得到實現。脈寬調制控制方法在直流調速中獲得了廣泛的應用。
1964年A.Schonung和H.stemmler首先提出把PWM技術應用到電機傳動中從此為電機傳動的推廣應用開辟了新的局面。進入70年代以來,體積小、耗電少、成本低、速度快、功能強、可靠性高的大規模集成電路微處理器已經商品化,把電機控制推上了一個嶄新的階段,以微處理器為核心的數字控制(簡稱微機數字控制)成為現代電氣傳動系統控制器的主要形式。PWM常取代數模轉換器(DAC)用於功率輸出控制,其中,直流電機的速度控制是最常見的應用。通常PWM配合橋式驅動電路實現直流電機調速,非常簡單,且調速范圍大。在直流電動機的控制中,主要使用定頻調寬法。
目前,電機調速控制模塊主要有以下三種:
(1)、採用電阻網路或數字電位器調整直流電機的分壓,從而達到調速的目的;
(2)、採用繼電器對直流電機的開或關進行控制,通過開關的切換對電機的速度進行調整;
(3)、採用由IGBT管組成的H型PWM電路。用單片機控制IGBT管使之工作在占空比可調的開關狀態,精確調整電動機轉速。
1.2 國內外發展概況
1.2.1 國內發展概況
我國從六十年代初試製成功第一隻硅晶閘管以來,晶閘管直流調速系統開始得到迅速的發展和廣泛的應用。用於中、小功率的 0.4~200KW晶閘管直流調速裝置已作為標准化、系列化通用產品批量生產。
目前,全國各大專院校、科研單位和廠家都在進行數字式直流調速系統的開發,提出了許多關於直流調速系統的控制演算法:
(1)、直流電動機及直流調速系統的參數辯識的方法。該方法據系統或環節的輸入輸出特性,應用最小二乘法,即可獲得系統環節的內部參數。所獲得的參數具有較高的精度,方法簡便易行。
(2)、直流電動機調速系統的內模控制方法。該方法依據內模控制原理,針對雙閉環直流電動機調速系統設計了一種內模控制器,取代常規的PI調節器,成功解決了轉速超調問題,能使系統獲得優良的動態和靜態性能,而且設計方法簡單,控制器容易實現。
(3)、單神經元自適應智能控制的方法。該方法針對直流傳動系統的特點,提出了單神經元自適應智能控制策略。這種單神經元自適應智能控制系統不僅具有良好的靜、動態性能,而且還具有令人滿意的魯棒性與自適應性。
(4)、模糊控制方法。該方法對模糊控制理論在小慣性系統上對其應用進行了嘗試。經1.5kw電機實驗證明,模糊控制理論可以用於直流並勵電動機的限流起動和恆速運行控制,並能獲得理想的控制曲線。
上訴的控制方法僅是直流電機調速系統應用和研究的一個側面,國內外還有許多學者對此進行了不同程度的研究。
1.2.2 國外發展概況
隨著各種微處理器的出現和發展,國外對直流電機的數字控制調速系統的研究也在不斷發展和完善,尤其80年代在這方面的研究達到空前的繁榮。大型直流電機的調速系統一般採用晶閘管整流來實現,為了提高調速系統的性能,研究工作者對晶閘管觸發脈沖的控制演算法作了大量研究,提出了內模控制演算法、I-P控制器取代PI調節器的方法、自適應和模糊PID演算法等等。
目前,國外主要的電氣公司,如瑞典ABB公司,德國西門子公司、AEG公司,日本三菱公司、東芝公司、美國GE公司等,均已開發出數字式直流調裝置,有成熟的系列化、標准化、模版化的應用產品供選用。如西門子公司生產的SIMOREG-K 6RA24 系列整流裝置為三相交流電源直接供電的全數字控制裝置,其結構緊湊,用於直流電機電樞和勵磁供電,完成調速任務。設計電流范圍為15A至1200A,並可通過並聯SITOR可控硅單元進行擴展。根據不同的應用場合,可選擇單象限或四象限運行的裝置,裝置本身帶有參數設定單元,不需要其它任何附加設備便可以完成參數設定。所有控制調節監控及附加功能都由微處理器來實現,可選擇給定值和反饋值為數字量或模擬量。
1.2.3 總結
隨著生產技術的發展,對直流電氣傳動在起制動、正反轉以及調速精度、調速范圍、靜態特性、動態響應等方面都提出了更高的要求,這就要求大量使用直流調速系統。因此人們對直流調速系統的研究將會更深一步。
1.3 本課題研究目的及意義
直流電動機是最早出現的電動機,也是最早實現調速的電動機。長期以來,直流電動機一直占據著調速控制的統治地位。由於它具有良好的線性調速特性,簡單的控制性能,高效率,優異的動態特性,現在仍是大多數調速控制電動機的最優選擇。因此研究直流電機的速度控制,有著非常重要的意義。
隨著單片機的發展,數字化直流PWM調速系統在工業上得到了廣泛的應用,控制方法也日益成熟。它對單片機的要求是:具有足夠快的速度;有PWM口,用於自動產生PWM波;有捕捉功能,用於測頻;有A/D轉換器、用來對電動機的輸出轉速、輸出電壓和電流的模擬量進行模/數轉換;有各種同步串列介面、足夠的內部ROM和RAM,以減小控制系統的無力尺寸;有看門狗、電源管理功能等。因此該實驗中選用Cygnal公司的單片機C8051F020。
通過設計基於C8051F020單片機的直流PWM調速系統並調試得出結論,在掌握C8051F020的同時進一步加深對直流電動機調速方法、PI控制器的理解,對運動控制的相關知識進行鞏固。
1.4 論文主要研究內容
本課題的研究對象為直流電動機,對其轉速進行控制。基本思想是利用C8051F020自帶的PWM口,通過調整PWM的占空比,控制電機的電樞電壓,進而控制轉速。
系統硬體設計為:以C8051F020為核心,由轉速環、顯示、按鍵控制等電路組成。
具體內容如下:
(1)、介紹直流電動機工作原理及PWM調速方法。
(2)、完成以C8051F020為控制核心的直流電機數字控制系統硬體設計。
(3)、以該系統的特點為基礎進行分析,使用PWM控制電機調速,並由實驗得到合適的PI控制及相關參數。
(4)、對該數字式直流電動機調速系統的性能做出總結。
第二章 直流電動機調速器工作原理
2.1 直流電機調速方法及原理
直流電動機的轉速和各參量的關系可用下式表示:
由上式可以看出,要想改變直流電機的轉速,即調速,可有三種不同的方式:調節電樞供電電壓U,改變電樞迴路電阻R,調節勵磁磁通Φ。
3種調速方式的比較表2-1所示.
表2-1 3種電動機調速方式對比
調速方式和方法 控制裝置 調速范圍 轉速變化率 平滑性 動態性能 恆轉矩或恆功 率 效率
改變電樞電阻 串電樞電阻 變阻器或接觸器、電阻器 2:1 低速時大 用變阻器較好
用接觸器、電阻器較差 無自動調節能力 恆轉矩 低
改變電樞電壓 電動機-發電機組 發電機組或電機擴大機(磁放大器) 10:1~20:1 小 好 較好 恆轉矩 60%~70%
靜止變流器 晶閘管變流器 50:1~100:1 小 好 好 恆轉矩 80%~90%
直流脈沖調寬 晶體管或晶閘管直流開關電路 50:1~100:1 小 好 好 恆轉矩 80%~90%
改變磁通 串聯電阻或可變直流電源 直流電源變阻器 3:1
~
5:1 較大 差 差 恆功率 80%~90%
電機擴大機或磁放大器 好 較好
晶閘管變流器 好
由表2-1知,對於要求在一定范圍內無級平滑調速的系統來說,以調節電樞供電電壓的方式為最佳,而變電樞電壓調速方法亦是應用最廣的調速方法。
2.2直流電機PWM(脈寬調制)調速工作原理
在直流調速系統中,開關放大器提供驅動電機所需要的電壓和電流,通過改變加在電動機上的電壓的平均值來控制電機的運轉。在開關放大器中,常採用晶體管作為開關器件,晶體管如同開關一樣,總是處在接通和斷開的狀態。在晶體管處在接通時,其上的壓降可以略去;當晶體管處在斷開時,其上的壓降很大,但是電流為零,所以不論晶體管導通還是關斷,輸出晶體管中的功耗都是很小的。一種比較簡單的開關放大器是按照一個固定的頻率去接通和斷開放大器,並根據需要改變一個周期內「接通」和「斷開」的相位寬窄,這樣的放大器被稱為脈沖調制放大器。
PWM脈沖寬度調制技術就是通過對一系列脈沖的寬度進行調制,來等效地獲得獲得所需要波形(含形狀和幅值)的技術。
根據PWM控制技術的特點,到目前為止主要有八類方法:相電壓控制PWM、線電壓控制PWM、電流控制PWM、非線性控制PWM,諧振軟開關PWM、矢量控制PWM、直接轉矩控制PWM、空間電壓矢量控制PWM。
利用開關管對直流電動機進行PWM調速控制原理圖及輸入輸出電壓波形如圖2-1、圖2-2所示。當開關管MOSFET的柵極輸入高電平時,開關管導通,直流電動機電樞繞組兩端由電壓。秒後,柵極輸入變為低電平,開關管截止,電動機電樞兩端電壓為0。秒後,柵極輸入重新變為高電平,開關管的動作重復前面的過程。這樣,對應著輸入的電平高低,直流電動機電樞繞組兩端的電壓波形如圖2-2所示。電動機的電樞繞組兩端的電壓平均值為:
式2-1
式中 ——占空比,
占空比表示了在一個周期里,開關管導通的時間與周期的比值。的變化范圍為0≤≤1。由式2-1可知,當電源電壓不變的情況下,電樞的端電壓的平均值取決於占空比的大小,改變值就可以改變端電壓的平均值,從而達到調速的目的,這就是PWM調速原理。
在PWM調速時,占空比是一個重要參數。以下是三種可改變占空比的方法:
(1)、定寬調頻法:保持不變,改變,從而改變周期(或頻率)。
(2)、調寬調頻法:保持不變,改變,從而改變周期(或頻率)。
(3)、定頻調寬法:保持周期(或頻率)不變,同時改變、。
前2種方法由於在調速時改變了控制脈沖的周期(或頻率),當控制脈沖的頻率與系統的固有頻率接近時,將會引起振盪,因此應用較少。目前,在直流電動機的控制中,主要使用第3種方法。
圖2-1 PWM調速控制原理
圖2-2 輸入輸出電壓波形
產生PWM控制信號的方法有4種,分別為:
(1)、分立電子元件組成的PWM信號發生器
這種方法是用分立的邏輯電子元件組成PWM信號電路。它是最早期的方式,現在已經被淘汰了。
(2)、軟體模擬法
利用單片機的一個I/O引腳,通過軟體對該引腳不斷地輸出高低電平來實現PWM信號輸出。這種方法要佔用CPU大量時間,需要很高的單片機性能,易於實現,目前也逐漸被淘汰。
(3)、專用PWM集成電路
從PWM控制技術出現之日起,就有晶元製造商生產專用的PWM集成電路晶元,現在市場上已有許多種。這些晶元除了由PWM信號發生功能外,還有「死區」調節功能、保護功能等。在單片機控制直流電動機系統中,使用專用PWM集成電路可以減輕單片機負擔,工作也更可靠。
(4)、單片機PWM口
新一代的單片機增加了許多功能,其中包括PWM功能。單片機通過初始化設置,使其能自動地發出PWM脈沖波,只能在改變占空比時CPU才進行干預。
其中常用後兩中方法獲得PWM信號。實驗中使用方法(4)獲得PWM信號。
2.3 轉速負反饋單閉環直流調速系統原理
2.3.1 單閉環直流調速系統的組成
只通過改變觸發或驅動電路的控制電壓來改變功率變換電路的輸出平均電壓,達到調節電動機轉速的目的,稱為開環調速系統。但開環直流調速系統具有局限性:
(1)、通過控制可調直流電源的輸入信號,可以連續調節直流電動機的電樞電壓,實現直流電動機的平滑無極調速,但是,在啟動或大范圍階躍升速時,電樞電流可能遠遠超過電機額定電流,可能會損壞電動機,也會使直流可調電源因過流而燒毀。因此必須設法限制電樞動態電流的幅值。
(2)、開環系統的額定速降一般都比較大,使得開環系統的調速范圍D都很小,對於大部分需要調速的生產機械都無法滿足要求。因此必須採用閉環反饋控制的方法減小額定動態速降,以增大調速范圍。
(3)、開環系統對於負載擾動是有靜差的。必須採用閉環反饋控制消除擾動靜差
為克服其缺點,提高系統的控制質量,必須採用帶有負反饋的閉環系統,方框圖如圖2-3所示。在閉環系統中,把系統輸出量通過檢測裝置(感測器)引向系統的輸入端,與系統的輸入量進行比較,從而得到反饋量與輸入量之間的偏差信號。利用此偏差信號通過控制器(調節器)產生控製作用,自動糾正偏差。因此,帶輸出量負反饋的閉環控制系統能提高系統抗擾性,改善控制精度的性能,廣泛用於各類自動調節系統中。
㈢ 如何用單片機實現對四個步進電機的速度控制呢
推薦你使用表控,型號TPC4-4TD就可以滿足你的要求。
表控可以同時控制4個步進電機,對於你說的速度控制講解如下:
上圖是表控的表格設置界面,省去了麻煩的編程,輕松實現步進電機控制。
圖中,第2行工作模式設置為「脈沖」模式,游標在脈沖模式的第2行時,脈沖頻率項及脈沖個數輸入項分別顯示脈沖個數的單位,數據輸入框顯示為綠色。脈沖輸出單位為:百萬、十萬、萬、千、百、十、個,脈沖頻率的單位為赫茲。示例中頻率設置為500赫茲,脈沖個數為1101616個脈沖(一百一十萬一千六百一十六)。
㈣ 單片機中怎樣用io口驅動電機
第一步:先在Proteus軟體中設計模擬電路原迅好理圖。
第二步:再者侍在Keil C51軟體中編寫且編譯程序,程序後綴必須是.c。然後在打開的「Option for Target『Target 1』」選項卡,「Target」標簽下頻率設置為「11.0592」, 「Output」標簽下,將「Creat HEX File」項打勾選中,設置生成一個.hex文件。
第三步:接著將.hex文件導入原理圖中U1晶元。雙擊U1,打開Edit Component對話框,首昌吵選擇生成的hex文件。
第四步:最後觀察設計的電路圖是否能得到預想的效果,若不能,進行檢查,找到毛病且糾正。
運行結果:
附:原程序
#include <REG52.H> #include <INTRINS.H>
unsigned char ucMotorDrvPuls;
#define OUTPUT P2 #define INPUT P1
sbit STARTUP=P1^7; sbit FORREV=P1^6;
㈤ 單片機控制 12V 0.3A的直流無刷電機(風扇) 如何驅動
單片機控制 12V 0.3A的直流無刷電機(風扇) 驅動分為高電平驅動和低電平驅動:
電平驅動IO 口 經一個2K的電阻 ,接到一個三極體 b ,風扇正極接 12V+,風扇負極接三極體 c , 三極體 e接GND (三極體 用NPN 8050 )。
電動機的轉子上粘有已充磁的永磁體 ,為了檢測電動機轉子的極性,在電動機內裝有位置感測器。驅動器由功率電子器件和集成電路等構成,其功能是:接受電動機的啟動、停止、制動信號,以控制電動機的啟動、停止和制動。
直流無刷電機的維護
1、在拆卸前,要用壓縮空氣吹凈電機表麵灰塵,並將表面污垢擦拭乾凈。
2、為了進一步了解電機運行中的缺陷,有條件時可在拆卸前做一次檢查試驗。
3、切斷電源 ,拆除電機外部接線,做好記錄。
4、選用合適電壓的兆歐表測試電機絕緣電阻 。為了跟上次檢修時所測的絕緣電阻值相比較以判斷電機絕緣變化趨勢和絕緣狀態,應將不同溫度下測出的絕緣電阻值換算到同一溫度,一般換算至75℃。
5、測試吸收比K。當吸收比大於1.33時,表明電機絕緣不曾受潮或受潮程度不嚴重。為了跟以前數據進行比較,同樣要將任意溫度下測得的吸收比換算到同一溫度。
㈥ 怎樣用單片機控制直流電動機
1、通過設置PWM波的占空比來控制直流閉前電機的轉速,占空比越大,轉速越快,越小轉速越低。2、當然單片機的I/O口是不能直接驅動電機的,所以你還需要用一個馬達驅動晶元。像LG9110、CMO825等。馬達驅動IC可以將單片機I/O輸出信號放大,這樣電機中流過的電流足夠大,電機才能轉起來。3、你要是不清除PWM是怎麼回事呢,可以先作一些了解,再來知道有徵對性轎吵清地提問就好了碰胡。]
㈦ 51單片機驅動電機問題
主要是用光耦的原因,因為光耦是連接胡旦單片機與直流電機的紐帶,首先單片機將電平信號通過光耦變成光信號,然後光信號在轉換成直流電機端端控制信號,當碼做鋒然,雖然單片機與直流電機的電源隔離了,但光耦需要與這兩部分共地。步進電遲晌機也是一樣,只要電位一致就可以了,其實隔離主要是隔離正電源。單片機板與電機板單點接地即可。不要大面積接地,否則就失去光耦的作用了
㈧ 單片機驅動直流電機的方案有哪些
單片機驅動直流電機一般有兩種方案。
第一,無須佔用單片機資源,直接選擇有PWM功能的單片機,可以實現精確調速。
第二,可以由軟體模擬PWM輸出調制,單片機型號的選擇餘地較大,但是需要佔用單片機資源,難以精確調速。
㈨ 89c52單片機驅動電機
你好
你猜測得不錯電機啟動瞬間造成電壓跌落蘆察,單片機反孫嘩念復重啟。
原因:1、電源如樓上說的電流不夠;2、7805的輸入端至少要8V左右7805才能正常工作;3、7805的輸入端與輸出端都有有濾波電容,而且要加散熱片。4、如果則困你的電源本身就在4.5-5.5V之間相對穩定,就不要再用7805 ,直接使用就好。
既然原因估計出來了,解決的方法也就有了。另外如果電源的電壓比5V高不多的話,可以把電機的電源接至7805的穩壓之前,降低控制脈沖的脈寬,使之符合轉速要求。
㈩ 用單片機對步進電機進行控制
呵呵 兄弟可以參考某些部分 呵呵
自己做的課程設計 還沒有做完 完了發給你參考參考
題 目:單片機控制步進電機系統
摘 要
很多工業控制設備對位移和角度的控制精度要求較高, 一般電機很難實現, 而步進電機可精確實現所設定的角度和轉數。本設計主要是運用51 單片機控制六線4 相步進電機系統, 由單片機產生驅動脈沖信號, 控制步進電機以一定的轉速向某一方向產生一定的轉動角度。同時能夠利用單片機實現電機的正、反轉及速度控制,並能在數碼管上顯示出相應的速度。
本文中給出了該系統設計的硬體電路,軟體設計,人機交互等。並對各個功能模塊進行了詳細的說明。主要內容包括以下幾個方面:
單片機控制步進電機的一般原理。
電機驅動及控制的實現。
控制系統整體設計以及模塊劃分說明。
原理圖。
代碼。
關鍵詞:單片機;步進電機;系統;驅動
Abstract
Many Instrial control equipment have a highly requirement in displacement and angle with control accuracy, the most motor can't carry out .but the step motor can carry out the displacement and angle that you enactmented in accuracy. This design mainly used SCM to control step motor system.The step motor is formed six lines and four phasic.Through SCM generate the drive pulse signal.Control stepper motor through a certain speed in a direction to get a certain degree of rotation angle.
At the same time, It can use SCM to realization of the motor is , reverse and speed control. and showed the speed in the digital tube.
In this paper, given the design of the system hardware circuit,software design, human-computer interaction and so on.and it given the details description of each functional mole.the main contents include the following:
(1) The general principles of signal_chip controlling step motor.
(2) The realization of motor driving and controlling
(3) Control system overall design and description mole division
(4) Schematic Diagram
(5) Code
Key Words:SCM; stepper motor; system; drive
目錄
引言 4
1 單片機控制步進電機的一般原理 4
1.1 步進電機 4
1.1.1 步進電機介紹 4
1.1.2 步進電機分類 5
1.1.3 技術指標 5
1.1.4 步進電機工作原理 5
1.2 單片機 7
2 步進電機驅動實現 8
2.1簡介 8
2.2驅動選擇 8
3 系統硬體設計 9
3. 1 單片機控制電機 9
3.2 鍵盤 9
3.3 顯示部分 10
程序流程圖 11
總結 12
致 謝 13
參考文獻 13
附錄 13
C代碼 13
引言
目前,在工業控制生產以及儀器上應用十分廣泛。通常都要對一些機械部件平移和轉動,對移動的位移和角度控制要求較高,一般的電機很難實現對位置和角度的精確控制,在一些智能化要求較高的場合,用模擬晶元控制器及信號發生器來控制有一定局限性。而用單片機控制步進電機可以改善性能,步進電機能實現精確的角度和轉數,具有良好的步進特性,最適合數字控制。在工控設備中得到了廣泛的應用。而單片機具有晶元體積小,兼容性強,低電壓地,低功耗等特點,使單片機成為驅動步進電機的最佳空盒子單元。所以單片機控制步進電機系統控制精度高,運行穩定,得以廣泛運用。
1 單片機控制步進電機的一般原理
1.1 步進電機
1.1.1 步進電機介紹
步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決於脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。雖然步進電機已被廣泛地應用,但步進電機並不能象普通的直流電機、交流電機在常規下使用。它必須由雙環形脈沖信號、功率驅動電路等組成控制系統方可使用。因此用好步進電機卻非易事,它涉及到機械、電機、電子及計算機等許多專業知識。
1.1.2 步進電機分類
永磁式(PM)。一般為二相,轉矩和體積都很小,步距角一般為7.5或15°
反應式(VR)。一般為三相,實現大轉矩輸出,步距角為1.5°。
混合式(HB)。兼具永磁式和反應式的優點,分二相和五相,二相步距角為1.8°五相步距角為0.72°。
1.1.3 技術指標
靜態指標
相數
步距角
拍數
定位轉矩
保持轉矩
步進電機動態指標
步距角精度
失步
失調角
最大空載啟動頻率
最大空載運行頻率
運行頻距特性
電機共振點
1.1.4 步進電機工作原理
分析(步進電機展開圖)
以反應式步進電機為例,其典型結構圖如圖1所示。這是一個四相步進電機,當相控制繞組接通脈沖電流時,在磁拉力作用下使相的定、轉子對齊,相鄰的B 相和D 相的定、轉子小齒錯開。若換成B 相通電,則磁拉力使B 相定、轉子小齒對齊(轉過) ,而與B 相相鄰的C 相和A 相的定、轉子小齒又錯開,即步進電機轉過一個步距角。若按A →B →C →D →A ⋯規律循環順序通電,則步進電機按一定方向轉動。若改變通電順序為A →D →C →B →A ,則電機反向轉動。這種控制方式稱為四相單四拍。若按AB →BC →CD →DA →AB或A →AB →B →BC →C →CD →D →DA →A 順序通電則稱為四相雙拍或四相單、雙八拍。無論採用哪種控制方式,在一個通電循環內,步進電機的轉角恆為一個齒距角。所以,可以通過改步進電機通電循環次序來改變轉動方向,可以通過改變通電頻率來改變其角頻率。運用單片機的輸出功能,通過編程實現輸出四個信號分別給步進電機的四相A、B、C、D ,並通過輸出時信號的循環次序,來設定步進電機的轉動方向及輸出信號的頻率以便設定步進電機的轉動頻率。
圖1 反應式步進電機結構圖
實現原理
採用單片機產生A、B、C、D 的四相信號,當採用單片機進行控制時,需要在單片機和步進電機中間設隔離電路以使強弱電分離。由於步進電機的驅動電流相對較大,可增設放大電路來提供步進電機的工作電流。系統電路由五部分組成,即單片機、隔離、放大、電源及步進電機。
1.2 單片機
功能特性描述
AT89S52是一種低功耗、高性能CMOS8位微控制器,
具有8K 在系統可編程Flash 存儲器。使用Atmel 公
司高密度非易失性存儲器技術製造,與工業80C51
產品指令和引腳完全兼容。片上Flash允許程序存儲
器在系統可編程,亦適於常規編程器。在單晶元上,
擁有靈巧的8 位CPU 和在系統可編程Flash,使得
AT89S52為眾多嵌入式控制應用系統提供高靈活、超
有效的解決方案。AT89S52具有以下標准功能:8k字
節Flash,256位元組RAM,32 位I/O 口線,看門狗定時
器,2 個數據指針,三個16 位定時器/計數器,一個6
向量2級中斷結構,全雙工串列口,片內晶振及時鍾電
路。另外,AT89S52 可降至0Hz 靜態邏輯操作,支持
2種軟體可選擇節電模式。空閑模式下,CPU停止工作,
允許RAM、定時器/計數器、串口、中斷繼續工作。掉
電保護方式下,RAM內容被保存,振盪器被凍結,單
片機一切工作停止,直到下一個中斷或硬體復位為止。
2 步進電機驅動實現
2.1簡介
步進電機在單單僅給予電壓時,電機是不會動作的,必須由脈沖產生器提供位置(脈波數)、速度的脈沖信號指令,以及驅動器驅動電流流過電機內部線圈、依順序切換激磁相序的方式才能夠讓電機運 轉。所以欲使步進電機動作的必要系統組成有:
(1)脈沖產生器:給予角度(位置移動量)、動作速度及運轉方向之脈沖信號的電機驅動指令。
(2)步進驅動器:依控制器所投入的脈沖信號指令,提供電流來驅動步進電機動作。
(3)步進電機:提供轉矩動力輸出來帶動負載。所以步進電機系統構成簡單,不需要速度感應器、位置感測器, 即能依照脈沖產生器所輸入的脈沖來做到速度及位置的控制。
2.2驅動選擇
步進電機可以選用專用的電機驅動模塊,也可以自己構建驅動電路。一般有以下幾種選擇:
專用驅動模塊,如L298,FT5754等,這類驅動介面簡單,這類可以驅動步進電機,直流電機等。
達林頓驅動器ULN2803,這個晶元可以一次驅動八線步進電機。
自己構建,通過三極體,74als04,等系列元件構成。但這樣系統可靠性會降低,會另外給系統帶來誤差。
3 系統硬體設計
1 單片機控制電機
如圖3
說明:
這個部分為單片機控制步進電機部分,80s52單片機通過達林頓驅動器ULN2803來驅動步進電機,80s52的P1.0-P1.4發送控制信號給驅動器,然後驅動器的四根線把信號傳遞給電機,使電機實現正反轉等。電機部分接12V直流電源。
3.2 鍵盤
如圖4
說明:
本系統中採用了四個按鍵,分別與80s52的四個引腳相連,分別為LCDEN,RS,WR,RD;分別實現的功能是電機加速,減速,正反轉。鍵盤一旦按下則表示向單片機發送了有效信號,單片機就相應的進行調節。對於鍵盤的鍵按下的時候分為幾個步驟,當鍵盤按下的時候,接通電路,鍵盤掃描檢測低電平,但檢測到低電平之後不能夠判斷鍵是否被按下,因為抖動可能引起這個變化,所有大概延時5~10ms之後再進行檢測。如果再次檢測到低電平之後說明鍵被按下。這個過程就是所說的消除抖動。
3.3 顯示部分
如圖5
說明:
對於顯示部分,因為這個系統只是顯示轉速,所以採用了LED共陽極數碼管。
並且用了74HC573鎖存器,74HC573鎖存器輸出電流大,介面電路簡單。本系統採用了兩個74HC573鎖存器,分別為段選和位選。段選為數碼管的顯示數字,位選為選中相應的數碼管。
程序流程圖
總結
通過本次的課程論文,讓我真實的感受到一個完整的系統設計過程。這次的的論文從開始的整體布局,排版,到內容中的系統設計直到最後完成。每個流程下來,都帶給了我很多的新東西,特別在設計完系統之後做硬體部分中,先是用protel99se畫圖,好多圖在庫中找不到,找不到就自己畫,然後封裝,封裝的時候還要用游標卡紙對買來的元件進行精確的測量,然後才能在封裝的過程中保證精度。最後做完圖之後還要布線,布線完成後再發到廠家去做。事實上這個過程我用買好的空板做的,因為元件不多。所以就買了相應的元件直接再PCB板上焊接好的。在焊接的過程中也會感受到很多東西,因為很多需要注意的。不過這個過程多多嘗試就會有進步的。焊接完後就是代碼調試階段。最後就完成了這個小型系統的設計。
致 謝
在此,感謝我的老師以及周圍的同學。本次的論文得益於同學們的幫助。最後還要感謝我的父母,是他們一直在背後支持著我。
謹以此文獻給他們!
參考文獻
[1] 張永楓,王靜霞,楊宏利. 單片機應用實訓教程. 西安電子科技大學出版社,2005.
[2] 郭天祥. 51單片機C語言教程. 電子工業出版社 2008
附錄
C代碼
單片機控制步進電機
實現功能:
定時器中斷:定時時間設置為30秒,首先給的初值每次中斷為5ms,經過20次中斷為1秒,半分鍾三十秒則要中斷600次,所有到達六百次後就把計數n中的值讀取到數碼管中顯示出來。
鍵盤檢測:進行速度控制的時候按下相應的鍵則會對應的進行速度調節。
數碼管顯示:
驅動部分:
#include <reg52.h>
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
sbit jia_key=P3^6;
sbit jian_key=P3^7;
sbit zf_key=P3^5;
sbit stop_key=P3^4;
bit flag=0;
uchar num1,n;
uchar num=0,show_num=2,maichong=4,table_begin=0;
uchar code table1[]={0x01,0x02,0x04,0x08,0x08,0x02,0x01};
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
// 延時部分
void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
// 顯示部分
void display()
{
la=0;
P0=table[show_num];
la=1;
la=0;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[0];
la=1;
la=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
}
// 鍵盤檢測部分
void key()
{
if(jia_key==0)
{
delay(5);
if(jia_key==0)
{
num++;
if(num==4)
num=3;
while(jia_key==0)
}
}
if(jian_key==0)
{
delay(5);
if(jian_key==0)
{
if(num!=0)
num--;
else
num==0;
while(jian_key==0);
}
}
if(zf_key==0)
{
delay(5);
if(zf_key==0)
{
flag=~flag;
while(zf_key==0);
}
}
if(stop_key==0)
{
delay(4);
if(stop_key==0)
{
show_num=0;
maichong=0;
}
while(stop_key==0)
}
}
// 鍵盤檢測結果
void dispose()
{
switch(num)
{
case 0:
maichong=5;
break;
case 1:
maichong=4;
break;
case 2:
maichong=3;
break;
case 3:
maichong=2;
break;
}
if(flag==0)
{
table_begin=0;
}
else
table_begin=4;
}
// 數碼管驅動部分
void qudong()
{
uchar i,j;
for(j=0+table_begin;j<4+table_begin;j++)
{
P1=table[j];
for(i=0;i<maichong;i++)
{
dispaly();
}
}
}
// 主函數部分
void main()
{
while(1)
{ init();
key();
dispose();
qudong();
n++;
}
}
// 定時器中斷初始化
void init()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1; // 開總中斷
ET0=1;// 開定時器0中斷
TR0=1;// 啟動定時器0
}
// 定時器中斷調用
void T0_time() intterrupt 1 // T0中斷
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num1++;
if(num1==600)
{
show_num=n;
num1=0;
n=0;
}
}