電機轉速測量系統(tǒng)
電機轉速測量系統(tǒng),電機,機電,轉速,測量,丈量,系統(tǒng)
電機課程設計
題 目: 電機轉速測量系統(tǒng)
院 (系): 機電工程學院
專 業(yè): 電氣工程及其自動化
學生姓名: 蔣明波
學 號: 0500120308
指導教師: 高鵬
職 稱: 副教授
2008年 7 月 4 日
目錄:
1、摘要------------------------------------------------------------------------------------------------------3
2、系統(tǒng)結構----------------------------------------------------------------------------------------------3
3、獲取脈沖信號的方法----------------------------------------------------------------------------4
3、1霍爾傳感器-------------------------------------------------------------4
3、2 光電傳感器-------------------------------------------------------------5
3.3光電編碼器-------------------------------------------------------------6
4、硬件連接圖及原理------------------------------------------------------------------------------6
5、實驗程序及分析-----------------------------------------------------------------------------------8
6.仿真-----------------------------------------------------------------15
7、PROTEL DXP原理圖-------------------------------------------------------------------16
8、PCB圖-------------------------------------------------------------------------------------------------16
9、硬件調試結果與分析-------------------------------------------------------------------------17
10、謝詞---------------------------------------------------------------------------------------------------17
11、參考文獻--------------------------------------------------------------------------------------------18
1.摘要
測速是工農業(yè)生產中經(jīng)常遇到的問題,學會使用單片機技術設計測速儀表具有很重要的意義。
???? 要測速,首先要解決是采樣的問題。在使用模擬技術制作測速表時,常用測速發(fā)電機的方法,即將測速發(fā)電機的轉軸與待測軸相連,測速發(fā)電機的電壓高低反映了轉速的高低。使用單片機進行測速,可以使用簡單的脈沖計數(shù)法。只要轉軸每旋轉一周,產生一個或固定的多個脈沖,并將脈沖送入單片機中進行計數(shù),即可獲得轉速的信息。
2.系統(tǒng)結構
本文主要針對電機的轉速進行測量,然后用數(shù)碼管把電機的轉速顯示出來!
本裝置主要有兩部分構成。1光電測速部分。2測得的脈沖處理處理和顯示部分!
光電測速部分主要由光電傳感器構成!脈沖處理部分主要經(jīng)施密特觸發(fā)器對接收到的脈沖進行波形校正,由單片機的T1口輸入,經(jīng)80C51處理后顯示輸出電機的轉速
下面我們來了解一下光電測速部分!
。
3、脈沖信號的獲得
???? 可以有多種方式來獲得脈沖信號,這些方法有各自的應用場合。下面逐一進行分析。
3.1霍爾傳感器
???? 霍爾傳感器是對磁敏感的傳感元件,常用于開關信號采集的有CS3020、CS3040等,這種傳感器是一個3端器件,外形與三極管相似,只要接上電源、地,即可工作,輸出通常是集電極開路(OC)門輸出,工作電壓范圍寬,使用非常方便。如圖1所示是CS3020的外形圖,將有字面對準自己,三根引腳從左向右分別是Vcc,地,輸出。
此主題相關圖片如下:1.jpg
?? 圖1 CS3020外形圖
???? 使用霍爾傳感器獲得脈沖信號,其機械結構也可以做得較為簡單,只要在轉軸的圓周上粘上一粒磁鋼,讓霍爾開關靠近磁鋼,就有信號輸出,轉軸旋轉時,就會不斷地產生脈沖信號輸出。如果在圓周上粘上多粒磁鋼,可以實現(xiàn)旋轉一周,獲得多個脈沖輸出。在粘磁鋼時要注意,霍爾傳感器對磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出,可以換一個方向再試。 這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場應用廣泛。
3.2.光電傳感器
???? 光電傳感器是應用非常廣泛的一種器件,有各種各樣的形式,如透射式、反射式等,基本的原理就是當發(fā)射管光照射到接收管時,接收管導通,反之關斷。以透射式為例,如圖2所示,當不透光的物體擋住發(fā)射與接收之間的間隙時,開關管關斷,否則打開。為此,可以制作一個遮光葉片如圖3所示,安裝在轉軸上,當扇葉經(jīng)過時,產生脈沖信號。當葉片數(shù)較多時,旋轉一周可以獲得多個脈沖信號。
圖2光電傳感器的原理圖
此主題相關圖片如下:3.jpg
圖3遮光葉片
3.3.光電編碼器
???? 光電編碼器的工作原理與光電傳感器一樣,不過它已將光電傳感器、電子電路、碼盤等做成一個整體,只要用連軸器將光電傳感器的軸與轉軸相連,就能獲得多種輸出信號。它廣泛應用于數(shù)控機床、回轉臺、伺服傳動、機器人、雷達、軍事目標測定等需要檢測角度的裝置和設備中。如圖4所示,是某光電編碼器的外形。
此主題相關圖片如下:4.jpg
圖4 成品光電編碼器
這次課設我選的是光電傳感器,采用穿透法測量電機轉速。光電傳感器的原理上面有詳細的介紹。
當不透光的物體擋住發(fā)射與接收之間的間隙時,開關管關斷,否則打開。為此,可以制作一個遮光葉片如圖3所示,安裝在轉軸上,當扇葉經(jīng)過時,產生脈沖信號。當葉片數(shù)較多時,旋轉一周可以獲得多個脈沖信號。 這里我們才用轉10個孔的方式!在一分鐘的時間內,假如產生了10000脈沖,則電機的轉速就為1000r/min.
4、硬件連接
???? 測速的方法決定了測速信號的硬件連接,測速實際上就是測頻,因此,頻率測量的一些原則同樣適用于測速。
???? 通常,可以用計數(shù)法、測脈寬法和等精度法來進行測試。所謂計數(shù)法,就是給定一個閘門時間,在閘門時間內計數(shù)輸入的脈沖個數(shù);測脈寬法是利用待測信號的脈寬來控制計數(shù)門,對一個高精度的高頻計數(shù)信號進行計數(shù)。由于閘門與被測信號不能同步,因此,這兩種方法都存在±1誤差的問題,第一種方法適用于信號頻率高時使用,第二種方法則在信號頻率低時使用。等精度法則對高、低頻信號都有很好的適應性。
???? 這里為簡化討論,僅采用計數(shù)法來進行測試。
如上圖:因為光電傳感器不好仿真,這里我們采用了555芯片構成一個施密特觸發(fā)器,由光電傳感器得到的脈沖由2,5腳輸入,經(jīng)3腳輸出接到單片機的T1(P3.5).。經(jīng)89C51編程處理后由P1口輸出通過數(shù)碼管顯示出轉速!
5、實驗程序及分析
???? 測量轉速,使用光電傳感器,被測電機帶動紙片旋轉,我們在紙片上開了10小孔,電機每旋轉一周就會產生10個脈沖,產生12個脈沖,要求將轉速值(轉/分)顯示在數(shù)碼管上。
實驗程序如下:
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define LED_DAT P1
sbit LED_SEG0 = P0^3;
sbit LED_SEG1 = P0^2;
sbit LED_SEG2 = P0^1;
sbit LED_SEG3 = P0^0;
//sbit pin_SpeedSenser = P3^5; //光電傳感器信號接在T1上
#define TIME_CYLC 100 //12M晶振,定時器10ms 中斷一次 我們1秒計算一次轉速 // 1000ms/10ms = 100
#define PLUS_PER 10 //碼盤的齒數(shù) ,這里假定碼盤上有10個齒,即傳感器檢測到10個脈沖,認為1圈
#define K 100.0 //校準系數(shù)
unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar data Disbuf[4];// 顯示緩沖區(qū)
uint Tcounter = 0; //時間計數(shù)器
bit Flag_Fresh = 0; // 刷新標志
bit Flag_clac = 0; //計算轉速標志
bit Flag_Err = 0; //超量程標志
//在數(shù)碼管上顯示一個四位數(shù)
void DisplayFresh();
//計算轉速,并把結果放入數(shù)碼管緩沖區(qū)
void ClacSpeed();
//初始化定時器T0
void init_timer0();
//初始化定時器T1
void init_timer1();
//延時函數(shù)
void Delay(uint ms);
void it_timer0() interrupt 1 /* interrupt address is 0x000b */
{
TF0 = 0; //d定時器 T0用于數(shù)碼管的動態(tài)刷新
//
TH0 = 0xC0; /* init values */
TL0 = 0x00;
Flag_Fresh = 1;
Tcounter++;
if(Tcounter>TIME_CYLC)
{ Flag_clac = 1;//周期到,該重新計算轉速了
}
}
void it_timer1() interrupt 3 /* interrupt address is 0x001b */
{
TF1 = 0; //定時器T1用于單位時間內收到的脈沖數(shù)
//要速度不是很快,T1永遠不會益處
Flag_Err = 1; //如果速度很高,我們應考慮另外一種測速方法,:脈沖寬度算轉速
}
void main(void)
{
Disbuf[0] = 0; //開機時,初始化為0000
Disbuf[1] = 0;
Disbuf[2] = 0;
Disbuf[3] = 0;
init_timer0();
init_timer1();
while(1)
{
if(Flag_Fresh)
{ Flag_Fresh = 0;
DisplayFresh(); // 定時刷新數(shù)碼管顯示
}
if(Flag_clac)
{ Flag_clac = 0;
ClacSpeed(); //計算轉速,并把結果放入數(shù)碼管緩沖區(qū)
Tcounter = 0;//周期定時 清零
TH1=TL1 = 0x00;//脈沖計數(shù)清零
}
if(Flag_Err) //超量程處理
{
//數(shù)碼管顯示字母'EEEE'
Disbuf[0] = 0x9e; //開機時,初始化為0000
Disbuf[1] = 0x9e;
Disbuf[2] = 0x9e;
Disbuf[3] = 0x9e;
while(1)
{ DisplayFresh();//不再測速 等待復位i
}
}
}
}
//在數(shù)碼管上顯示一個四位數(shù)
void DisplayFresh()
{
P2 |= 0xF0;
LED_SEG0 = 0;
LED_DAT = table[Disbuf[0]];
Delay(1);
P2 |= 0xF0;
LED_SEG1 = 0;
LED_DAT = table[Disbuf[1]];
Delay(1);
P2 |= 0xF0;
LED_SEG2 = 0;
LED_DAT = table[Disbuf[2]];
Delay(1);
P2 |= 0xF0;
LED_SEG3 = 0;
LED_DAT = table[Disbuf[3]];
Delay(1);
P2 |= 0xF0;
}
//計算轉速,并把結果放入數(shù)碼管緩沖區(qū)
void ClacSpeed()
{
uint speed ;
uint PlusCounter;
PlusCounter = TH1*256 + TL1;
speed = K*(PlusCounter/PLUS_PER)/60;//K是校準系數(shù),如速度不準,調節(jié)K的大小
Disbuf[0] = (speed/1000)%10;
Disbuf[1] = (speed/100)%10;
Disbuf[2] = (speed/10)%10;
Disbuf[3] = speed%10;
}
//初始化定時器T0
void init_timer0()
{
TMOD &= 0xf0; //定時10毫秒 /* Timer 0 mode 1 with software gate */
TMOD |= 0x01; /* GATE0=0; C/T0#=0; M10=0; M00=1; */
TH0 = 0xC0; /* init values */
TL0 = 0x00;
ET0=1; /* enable timer0 interrupt */
EA=1; /* enable interrupts */
TR0=1; /* timer0 run */
}
//延時函數(shù)
void Delay(uint ms)
{
uchar i;
while(ms--)
for(i=0;i<100;i++);
}
//初始化定時器T1
void init_timer1()
{
TMOD &= 0x0F; /* Counter 1 mode 1 with software gate */
TMOD |= 0x50; /* GATE0=0; C/T0#=1; M10=0; M00=1; */
TH1 = 0x00; /* init values */
TL1 = 0x00;
ET1=1; /* enable timer1 interrupt */
EA=1; /* enable interrupts */
TR1=1; /* timer1 run */
}
6.軟件仿真:
如上圖:光電傳感器測得脈沖由555的2或5腳輸入,由555的三腳輸出,接入AT9C51的P3.5口。P2.4---P2.7為數(shù)碼管的位選端口,p1為數(shù)據(jù)端口。
7.用protel DXP畫出原理圖如下:
8、根據(jù)原理圖得到的PCB:
9、硬件調試結果:
這次課程設計,主要對電機進行測速,在電機的碼盤上轉了10個孔,
沒10ms 對電機測量一次轉速!由于工具不太足,做硬件的時候遇到了不少的困難!
總體來說能夠實現(xiàn)其基本功能!電機轉速700---1500r/min.
謝詞:謝謝高老師對我們這次課程設計的指導,在很多模糊的部分給出很多很好的意見,例如光電測速部分等等,再一次謝謝高老師。
10、參考文獻:
電工電子技術實踐教程 化學工業(yè)出版社
單片機原理及應用 機械工業(yè)出版社
20
收藏
編號:2689529
類型:共享資源
大?。?span id="24d9guoke414" class="font-tahoma">297.04KB
格式:ZIP
上傳時間:2019-11-28
5
積分
- 關 鍵 詞:
-
電機
機電
轉速
測量
丈量
系統(tǒng)
- 資源描述:
-
電機轉速測量系統(tǒng),電機,機電,轉速,測量,丈量,系統(tǒng)
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。