❶ 單片機直流電機調速系統設計
論文題目:直流電動機調速器硬體設計
專業:自動化
本科生:劉小煜 (簽名)____
指導教師:胡曉東 (簽名)____
直流電動機調速器硬體設計
摘 要
直流電動機廣泛應用於各種場合,為使機械設備以合理速度進行工作則需要對直流電機進行調速。該實驗中搭建了基於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所示。在閉環系統中,把系統輸出量通過檢測裝置(感測器)引向系統的輸入端,與系統的輸入量進行比較,從而得到反饋量與輸入量之間的偏差信號。利用此偏差信號通過控制器(調節器)產生控製作用,自動糾正偏差。因此,帶輸出量負反饋的閉環控制系統能提高系統抗擾性,改善控制精度的性能,廣泛用於各類自動調節系統中。
❷ 利用單片機實現直流電機的測速
用的8051的吧,用計數器功能就行了單位時間內數下降沿個數,12個下降岩一個周期,看來還要結合定時器第一秒,或更多。總之,計數器計數,定時器定時,在運算
❸ 如何用單片機控制直流電機
通過與單片機相連的按鍵控制直流電機停啟的電路如下圖所示,通過P3.6口按鍵觸發啟動直流電機,P3.7口的按鍵觸發停止直流電機的運行。由圖可知,當P1.0輸出高電平「1」時,NPN型三極體導通,直流電機得電轉動;當P1.0輸出低電平「0」時,NPN型三極體截止,直流電機停止轉動。
通過單片機產生PWM波控制直流電機程序
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar code table[10]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共陰數碼管顯示碼(0-9)
sbit xiaoshudian=P0^7;
sbit wei1=P2^4; //數碼管位選定義
sbit wei2=P2^5;
sbit wei3=P2^6;
sbit wei4=P2^7;
sbit beep=P2^3; //蜂鳴器控制端
sbit motor = P1^0; //電機控制
sbit s1_jiasu = P1^4; //加速按鍵
sbit s2_jiansu= P1^5; //減速按鍵
sbit s3_jiting=P1^6; //停止/開始按鍵
uint pulse_count; //INT0接收到的脈沖數
uint num=0; //num相當於占空比調節的精度
uchar speed[3]; //四位速度值存儲
float bianhuasu; //當前速度(理論計算值)
float reallyspeed; //實際測得的速度
float vv_min=0.0;vv_max=250.0;
float vi_Ref=60.0; //給定值
float vi_PreError,vi_PreDerror;
uint pwm=100; //相當於占空比標志變數
int sample_time=0; //采樣標志
float v_kp=1.2,v_ki=0.6,v_kd=0.2; //比例,積分,微分常數
void delay (uint z)
{
uint x,y;
for(x=z;x>0;x--)
for (y=20;y>0;y--);
}
void time_init()
{
ET1=1; //允許定時器T1中斷
ET0=1; //允許定時器T0中斷
TMOD = 0x15; //定時器0計數,模式1;定時器1定時,模式1
TH1 = (65536-100)/256; //定時器1值,負責PID中斷 ,0.1ms定時
TL1 = (65536-100)%6;
TR0 = 1; //開定時器
TR1 = 1;
IP=0X08; //定時器1為高優級
EA=1; //開總中斷
}
void keyscan()
{
float j;
if(s1_jiasu==0) //加速
{
delay(20);
if(s1_jiasu==0)
vi_Ref+=10;
j=vi_Ref;
}
while(s1_jiasu==0);
if(s2_jiansu==0) //減速
{
delay(20);
if(s2_jiansu==0)
vi_Ref-=10;
j=vi_Ref;
}
while(s2_jiansu==0);
if(s3_jiting==0)
{
delay(20);
motor=0;
P1=0X00;
P3=0X00;
P0=0x00;
}
while(s3_jiting==0);
}
float v_PIDCalc(float vi_Ref,float vi_SpeedBack)
{
register float error1,d_error,dd_error;
error1=vi_Ref-vi_SpeedBack; //偏差的計算
d_error=error1-vi_PreError; //誤差的偏差
dd_error=d_error-vi_PreDerror; //誤差變化率
vi_PreError=error1; //存儲當前偏差
vi_PreDerror=d_error;
bianhuasu=(v_kp*d_error+v_ki*vi_PreError+v_kd*dd_error);
return (bianhuasu);
}
void v_Display()
{
uint su;
su=(int)(reallyspeed*10); //乘以10之後強制轉化成整型
speed[3]=su/1000; //百位
speed[2]=(su00)/100; //十位
speed[1]=(su0)/10; //個位
speed[0]=su; //小數點後一位
wei1=0; //第一位打開
P0=table[speed[3]];
delay(5);
wei1=1; //第一位關閉
wei2=0;
P0=table[speed[2]];
delay(5);
wei2=1;
wei3=0;
P0=table[speed[1]];
xiaoshudian=1;
delay(5);
wei3=1;
wei4=0;
P0=table[speed[0]];
delay(5);
wei4=1;
}
void BEEP()
{
if((reallyspeed)>=vi_Ref+5||(reallyspeed
{
beep=~beep;
delay(4);
}
}
void main()
{
time_init();
motor=0;
while(1)
{
v_Display();
BEEP();
}
if(s3_jiting==0) //對按鍵3進行掃描,增強急停效果
{
delay(20);
motor=0;
P1=0X00;
P3=0X00;
P0=0x00;
}
while(s3_jiting==0);
}
void timer0() interrupt 1
{
}
void timer1() interrupt 3
{
TH1 = (65536-100)/256; //1ms定時
TL1 = (65536-100)%6;
sample_time++;
if(sample_time==5000) //采樣時間0.1ms*5000=0.5s
{
TR0=0; //關閉定時器0
sample_time=0;
pulse_count=TH0*255+TL0; //保存當前脈沖數
keyscan(); //掃描按鍵
reallyspeed=pulse_count/(4*0.6); //計算速度
pwm=pwm+v_PIDCalc(vi_Ref,reallyspeed);
if(pwm
if(pwm>100)pwm=100;
TH0=TL0=0;
TR0=1; //開啟定時器0
}
num++;
if(num==pwm) //此處的num值,就是占空比
{
motor=0;
}
if(num==100) //100相當於占空比調節的精度
{
num=0;
motor=1;
}
}
❹ 單片機中直流電機控制速度解釋一下這個原理圖,
這是pwm(脈沖寬度調制)方式工作的電機速度控制器。p521是普通的光電耦合器。
左邊3個運放電路組成一個三角波發生器,第4個運放是比較器。從DA OUT送來的模擬電壓信號,和電位器分壓的直流疊加後,送到比較器與三角波進行比較,比較器便輸出方波脈沖,脈沖的寬度的變化量與da out 電壓成正比,改變模擬輸入,就可改變脈沖寬度。這就是PWM信號。
pwm的脈沖信號經過p521光電耦合器隔離後,驅動場效應管,再驅動電機。電機接受的是脈沖電壓,由於電機的電感等有濾波作用,電機的有效電壓是脈沖電壓的平均值,改變脈沖寬度就改變了電機的電壓平均值,從而調整電機的轉速。
❺ 霍爾感測器在測量電機轉速時,它如何與單片機連接啊 求個電路圖 謝謝
2基於霍爾感測器的電機轉速測量系統硬體設計
2.1電機轉速測量系統的硬體電路設計
2.1.1總體硬體設計
使用單片機測量電機轉速的基本結構如圖2-1所示。該系統包括霍爾感測器、隔離整形電路、主CPU、顯示電路、報警電路及電源等部分。
圖2-1系統總體結構圖
其測量過程是測量轉速的霍爾感測器和電機機軸同軸連接,機軸每轉一周,產生一定量的脈沖個數,由霍爾器件電路輸出。經過電耦合器後,即經過隔離整形電路後,成為轉數計數器的計數脈沖。同時霍爾感測器電路輸出幅度為12V的脈沖經光電耦合後降為5V,保持同單片機AT89C51邏輯電平相一致,控制計數時間,即可實現計數器的計數值對應機軸的轉速值。主CPU將該值數據處理後,在LCD液晶顯示器上顯示出來。一旦超速,CPU通過喇叭和轉燈發出聲、光報警信號。
1.感測器部分
主要分為兩個部分。第一部分是利用霍爾器件將電機的轉速轉化為脈沖信號。霍爾測速模塊由鐵質的測速齒輪和帶有霍爾元件的支架構成。測速齒輪如圖2-2所示,齒輪厚度大約2mm,將其固定在待測電機的轉軸上。將霍爾元件固定在距齒輪外圓1mm的探頭上,霍爾元件的對面粘貼小磁鋼,當測速齒輪的每個齒經過探頭正前方時,改變了磁通密度,霍爾元件就輸出一個脈沖信號。第二部分是使用六反相器和光耦,將感測器輸出的信號進行整形隔離,減少計數的干擾。
測速齒輪霍爾元件
圖2-2轉速變換裝置
2.處理器
採用AT89C51單片機作為系統的處理器。
3.顯示部分
該部分有兩個功能,在正常情況下,通過LCD液晶顯示器顯示當前的頻率數值,當電機的轉速超出一定的范圍後,通過蜂鳴器進行報警。蜂鳴器是一種一體化結構的電子訊響器,採用直流電壓供電,廣泛應用於計算機、列印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。
2.1.2系統電路設計
實際測量時,要把霍爾感測器固定在直流測速電機的底板上,與霍爾探頭相對的電機的軸上固定著一片磁鋼塊,電機每轉一周,霍爾感測器便發出一個脈沖信號,將此脈沖信號接到開發的多功能實驗板上的P3.2[]上,設定T0定時,每分鍾所計的進入P3.2的脈沖個數即為直流電機的轉速。
由於在虛擬模擬電路圖中,沒有電機及感測器,所以就直接用一個脈沖信號代替,電路圖如圖2-3所示。
圖2-3總體硬體電路圖
2.2霍爾感測器測量電路設計
2.2.1霍爾元件
根據霍爾效應,人們用半導體材料製成的元件叫霍爾元件。它具有對磁場敏感、結構簡單、體積小、頻率響應寬、輸出電壓變化大和使用壽命長等優點,因此,在測量、自動化、計算機和信息技術等領域得到廣泛的應用。
霍爾感測器A3144是AllegroMicroSystems公司生產的寬溫、開關型霍爾效應感測器,其工作溫度范圍可達-40℃~150℃。它由電壓調整電路、反相電源保護電路、霍爾元件、溫度補償電路、微信號放大器、施密特觸發器和OC門輸出極構成,通過使用上拉電阻可以將其輸出接入CMOS邏輯電路。該晶元具有尺寸小、穩定性好、靈敏度高等特點,有兩種封裝形式,一種是3腳貼片微小型封裝,後綴為「LH」;另一種是3腳直插式封裝,後綴為「UA」[5]。
A3144E系列單極高溫霍爾效應集成感測器是由穩壓電源,霍爾電壓發生器,差分放大器,施密特觸發器和輸出放大器組成的磁敏感測電路,其輸入為磁感應強度,輸出是一個數字電壓訊號。它是一種單磁極工作的磁敏電路,適用於矩形或者柱形磁體下工作。可應用於汽車工業和軍事工程中。
霍爾感測器的外形圖和與磁場的作用關系如圖2-4所示。磁場由磁鋼提供,所以霍爾感測器和磁鋼需要配對使用。
霍爾元件和磁鋼管腳圖
圖2-4霍爾感測器的外形圖
該霍爾感測器的接線圖如圖2-5所示。
圖2-5霍爾感測器的接線圖
2.2.2霍爾感測器測量原理
測量電機轉速的第一步就是要將電機的轉速表示為單片機可以識別的脈沖信號,從而進行脈沖計數。霍爾器件作為一種轉速測量系統的感測器,它有結構牢固、體積小、重量輕、壽命長、安裝方便等優點,因此選用霍爾感測器檢測脈沖信號,其基本的測量原理如圖2-6所示,當電機轉動時,帶動感測器運動,產生對應頻率的脈沖信號,經過信號處理後輸出到計數器或其他的脈沖計數裝置,進行轉速的測量[6]。
❻ 如何用單片機測出電機中的電流,畫出電路圖,給出模擬。
這個圖上半部分是一個輸入可以在6-40V輸出為5V的降壓電路
下半部分的左邊是一個分壓電路可以供單片機檢測輸入電壓的,
下半部分的右邊是一個電流檢測電路,
如果電機連接在V+out與V-out上電流檢測點上可以為電機電流轉換後的電壓值
可以查看該晶元的數據手冊的使用方法,封裝與貼片三極體一樣SOT23
至於AD轉換現在多數單片機都有的,檢測點與AD埠連接就可以了
接下來就是編程了。
❼ 如何用單片機AT89S52控制直流電機最好有實際電路圖和程序
對基於MCS-51系列單片機實現直流電機調速系統進行研究和設計,能夠在不同按鈕的作用下分別實現電機的啟動、停止、正轉、反轉、加速、減速控制;能夠實現對直流電機的PWM的調速設計。增大占空比,增加轉速,減小占空比,減小轉速。
通過按鍵的輸入,對控制器發出指令,由此來輸出電機的啟停、正反轉、以及加減速和LED的顯示。
❽ 單片機直流電機測速實驗程序
#include<reg52.h>
#include"delay.h"
#define uchar unsigned char
#define uint unsigned int
//*********************//
sbit ENA = P2^2; //驅動晶元使能,若為0則電機停止;
sbit IN1 = P2^1; //控制電機正轉和反轉
sbit IN2 = P2^0; //控制電機正轉和反轉
sbit key1 = P1^0; //此鍵按下,電機正轉;IN1=1;IN2=0 ;ENA=1
sbit key2 = P1^1; //此鍵按下,電機反轉;IN1=0,IN2=1 ;ENA=1
sbit key3 = P1^2; //此鍵按下,電機剎停; IN1=1,IN2=1 ;ENA=1
//*********************//
int motor_change_mank=0;
// 按鍵設置
//**********************//
uint keylogo()
{
if(key1==0)
{
delayms(2) ;
//while(key1==0);
motor_change_mank=1;//正轉標志位
}
if(key2==0)
{
delayms(2) ;
//while(key2==0);
motor_change_mank=2;//反轉標志位
}
if(key3==0)
{
delayms(2) ;
//while(key3==0);
motor_change_mank=0;//剎停標志位
}
return(motor_change_mank);
}
//**********************//
//控制驅動晶元函數
//**********************//
void execute_motor()
{
switch(motor_change_mank)
{
case 0: //剎停標志位
{
IN1 = 1;
IN2 = 1;
ENA = 1;
}break;
case 1: //正轉標志位
{
IN1 = 1;
IN2 = 0;
ENA = 1;
}break;
case 2: //反轉標志位
{
IN1 = 0;
IN2 = 1;
ENA = 1;
}break;
default:break;
}
}
//**********************//
void main()
{
while(1)
{
keylogo();
execute_motor();
}
}
/**********************************************************************/
/**********************************************************************/
#define uint unsigned int
void delayms(uint n)
{
int i;
for(;n>0;n--)
for(i=0;i<1;i++);
}
/**********************************************************************/
/**********************************************************************/
#ifndef delay_h
#define delay_h
#define uint unsigned int
extern void delayms(uint n);
#endif