陳立彬,劉 剛
(溫州科技職業(yè)學(xué)院,浙江溫州325006)
電動(dòng)機(jī)轉(zhuǎn)速的測(cè)量方法分為模擬式和數(shù)字式兩種。模擬式采用測(cè)速發(fā)電機(jī)為檢測(cè)元件。數(shù)字式通常采用光電編碼器、霍爾元件等為檢測(cè)元件,得到脈沖信號(hào),送入單片機(jī)處理、轉(zhuǎn)換得到轉(zhuǎn)速。利用單片機(jī)處理脈沖信號(hào)有測(cè)頻法和測(cè)周期法。
圖1是基于STC89C52的電動(dòng)機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)原理框圖,由金屬光電開關(guān)檢測(cè)模塊、按鍵模塊、顯示模塊和繼電器保護(hù)輸出模塊組成。
圖1 電動(dòng)機(jī)測(cè)速系統(tǒng)原理圖
2.1.1 金屬接近開關(guān)
本文介紹的轉(zhuǎn)速測(cè)量系統(tǒng)采用金屬接近開關(guān)作為檢測(cè)元件。相比霍爾傳感器,該系統(tǒng)具有不易受磁場(chǎng)干擾、安裝方便、適應(yīng)性強(qiáng)的特點(diǎn)。金屬接近開關(guān)是工業(yè)領(lǐng)域廣泛使用的一種自動(dòng)控制電子開關(guān),它在有金屬物體靠近檢測(cè)探頭時(shí),電子開關(guān)接通;當(dāng)金屬物體遠(yuǎn)離檢測(cè)探頭時(shí),電子開關(guān)關(guān)閉。金屬接近開關(guān)只有三條引出線,電源正負(fù)極和脈沖信號(hào)輸出,使用非常方便。其內(nèi)部電路由高頻振蕩器電路、倍壓整流電路和電子開關(guān)電路組成,如圖2所示。
圖2 金屬接近開關(guān)電路圖
高頻振蕩器電路由高頻變壓器T、電位器RP1、電阻器R1~R3、電容器C1~C3和晶體管V 1組成。
倍壓整流電路由二極管VD 1與VD 2、電容器C4和電阻器R4組成。
電子開關(guān)電路由晶體管V2與V3、電位器RP2、光耦合器VLC和電阻器R5、R6組成。
高頻變壓器T作為檢測(cè)探頭對(duì)金屬物體進(jìn)行檢測(cè)。在金屬物體未靠近檢測(cè)探頭時(shí),高頻振蕩器振蕩工作,其輸出的振蕩信號(hào)經(jīng)倍壓整流電路倍壓整流后,產(chǎn)生一直流電壓使V2飽和導(dǎo)通,V3和VLC截止,電子開關(guān)處于關(guān)閉狀態(tài)。當(dāng)有金屬物體靠近檢測(cè)探頭時(shí),將產(chǎn)生渦流損耗,使高頻振蕩器停振,V 2因基極的直流電壓消失而截止,V 3導(dǎo)通,VLC內(nèi)部的發(fā)光二極管點(diǎn)亮,當(dāng)光敏晶體管導(dǎo)通,電子開關(guān)處于接通狀態(tài)。調(diào)節(jié)RP1和RP2的阻值,可改變探測(cè)距離及探測(cè)靈敏度。
金屬接近開關(guān)輸出的脈沖信號(hào),經(jīng)過光耦隔離后,直接送入單片機(jī)外部中斷INT1管腳。
2.1.2 單片機(jī)核心電路[6-8]
整套測(cè)速系統(tǒng)選用STC89C52單片機(jī),該單片機(jī)兼容AT89S51,支持在線編程和調(diào)試,可進(jìn)行高達(dá)1 000次擦寫。STC單片機(jī)內(nèi)置了2 k的EEPROM,分為8個(gè)扇區(qū)。單片機(jī)將數(shù)據(jù)寫入到程序存儲(chǔ)器中,掉電不丟失。值得注意的是,由于其沒有字節(jié)擦除,只有扇區(qū)擦除,所以每次寫操作前務(wù)必對(duì)該扇區(qū)進(jìn)行擦除,若其中有些字節(jié)的內(nèi)容需要保留,則需將其先讀到單片機(jī)內(nèi)部的RAM中保存,再將該扇區(qū)擦除,然后將需保留的數(shù)據(jù)寫回該扇區(qū)。
2.1.3 按鍵和數(shù)碼管顯示電路
由三個(gè)按鍵S1、S2、S3組成轉(zhuǎn)速報(bào)警設(shè)置。S1作為設(shè)定和確認(rèn)按鍵,S2作為數(shù)碼管移位功能,S3作為數(shù)碼管數(shù)據(jù)遞增功能。設(shè)定轉(zhuǎn)速報(bào)警前,需要正確輸入程序預(yù)先設(shè)定好的密碼,才能進(jìn)入設(shè)置轉(zhuǎn)速報(bào)警界面,如果密碼輸錯(cuò),則設(shè)置無效,確保了無關(guān)人員隨意設(shè)置速度報(bào)警數(shù)據(jù)。一個(gè)四位的共陽數(shù)碼管作為速度顯示,如圖3所示。
圖3 按鍵和數(shù)碼管顯示
圖4 繼電器報(bào)警保護(hù)電路
2.1.4 繼電器報(bào)警保護(hù)電路
本文介紹的測(cè)速系統(tǒng)還具有報(bào)警功能,預(yù)先通過按鍵S1、S2、S3設(shè)定繼電器的動(dòng)作轉(zhuǎn)速。一旦實(shí)際轉(zhuǎn)速超過或低于設(shè)定值時(shí),繼電器線圈得電動(dòng)作,電路如圖4所示。
因?yàn)閱纹瑱C(jī)輸出電流很小,所以單片機(jī)輸出信號(hào)加到三極管基極,通過控制三極管的導(dǎo)通和截止,帶動(dòng)繼電器的吸合和斷開。繼電器的線圈是一個(gè)電感,切斷會(huì)有很大的反向電動(dòng)勢(shì),反電勢(shì)將加在驅(qū)動(dòng)線圈的三級(jí)管上,將其擊穿,導(dǎo)致繼電器無法關(guān)斷,因此,該高壓需要旁路,為保護(hù)驅(qū)動(dòng)三極管加二極管。
軟件模塊主要包括周期法測(cè)轉(zhuǎn)速模塊、E2PROM模塊、按鍵和顯示模塊。
2.2.1 周期法測(cè)轉(zhuǎn)速模塊
金屬接近開關(guān)輸入信號(hào)經(jīng)過光耦隔離后,加到單片機(jī)INT1管腳。INT1設(shè)置為下降沿觸發(fā)。在第一個(gè)下降沿觸發(fā)INT1中斷的時(shí)候,起動(dòng)定時(shí)器T1,在第二個(gè)下降沿觸發(fā)INT1中斷的時(shí)候,關(guān)閉定時(shí)器T1。兩個(gè)的時(shí)間差的倒數(shù)就是電動(dòng)機(jī)的轉(zhuǎn)速。
void inter1()interrupt 2 using 1{
if(down==0){
TR1=1;//起動(dòng)定時(shí)器T1
down=1;//下降沿標(biāo)志信號(hào)
}else{
down=0;
TR1=0;//關(guān)閉定時(shí)器T1
}
}
2.2.2 E2PROM模塊
為了保證轉(zhuǎn)速報(bào)警的設(shè)置功能,需要程序能實(shí)現(xiàn)設(shè)置值掉電保存功能。利用STC89C52單片機(jī)內(nèi)置了2 k的E2PROM特點(diǎn),可以很容易實(shí)現(xiàn)這一功能。需要注意的是,在寫入數(shù)據(jù)前,需要擦除原來的內(nèi)容。STC89C52可以按照字節(jié)讀、字節(jié)寫來操作。但是擦除沒有字節(jié)操作的功能,只能扇區(qū)擦除。扇區(qū)擦除的程序如下:
INT8U sector_erase(INT16U sector_addr)
{
INT16U get_sector_addr=0;
get_sector_addr=(sector_addr&0xfe00);//取扇區(qū)地址
ISP_ADDRH=(INT8U)(get_sector_addr>>8);
ISP_ADDRL=0x00;
ISP_CMD=ISP_CMD&0xf8;//1111,1000
ISP_CMD=ISP_CMD|SECTOR_ERASE_AP_and_Data_Memory_Command;//0000,0011
ISP_IAP_enable();
ISP_TRIG=0x46;//觸發(fā)ISP_IAP命令
ISP_TRIG=0xb9;//觸發(fā)ISP_IAP命令
_nop_();
ISP_IAP_disable();
return OK;
}
本文設(shè)計(jì)了一種STC89C 52的電動(dòng)機(jī)轉(zhuǎn)速測(cè)量系統(tǒng),采用金屬接近開關(guān)作為檢測(cè)元件,利用測(cè)周法計(jì)算電動(dòng)機(jī)的轉(zhuǎn)速。通過實(shí)踐證明,系統(tǒng)運(yùn)行可靠,測(cè)量速度范圍廣。通過調(diào)節(jié)金屬接近開關(guān),可以在5~20mm的范圍內(nèi)實(shí)時(shí)檢測(cè)電動(dòng)機(jī)的轉(zhuǎn)速。