一種紅外遙控式步進(jìn)電機(jī)控制器的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹了以89C2051單片機(jī)為核心,針對(duì)步進(jìn)電機(jī)在手動(dòng)和自動(dòng)控制模式的基礎(chǔ)上,設(shè)計(jì)出能夠?qū)崿F(xiàn)遙控操作的控制器。以四相五線步進(jìn)電機(jī)為研究對(duì)象,以集成紅外接收器接收遙控器發(fā)來的信號(hào)作為輸入信號(hào),并送單片機(jī)進(jìn)行解碼,單片機(jī)根據(jù)接收的輸入信號(hào)進(jìn)行運(yùn)算處理后,發(fā)出控制命令送步進(jìn)驅(qū)動(dòng)器,驅(qū)動(dòng)步進(jìn)電機(jī)工作。實(shí)現(xiàn)了步進(jìn)電機(jī)的手動(dòng)、自動(dòng)及遙控方式下的正反轉(zhuǎn),還實(shí)現(xiàn)定時(shí)時(shí)鐘控制以及LCD狀態(tài)顯示等功能。
關(guān)鍵詞:步進(jìn)電機(jī);自動(dòng)控制;手動(dòng);遙控
步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載情況下,電機(jī)的轉(zhuǎn)速、停止的位置取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號(hào),電機(jī)則轉(zhuǎn)過一個(gè)步距角。由于這一關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn),使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡(jiǎn)單,更加方便用戶的應(yīng)用與掌握。
隨著信息技術(shù)的飛速發(fā)展,無線通信技術(shù)正在向各個(gè)領(lǐng)域滲透,特別是利用紅外線進(jìn)行通信,無論從小型化、輕量化、還是從安全性等方面考慮,其可行性都比較高。本文主要研究步進(jìn)電機(jī)在手動(dòng)、自動(dòng)控制模式下,通過增加紅外遙控模式以實(shí)現(xiàn)步進(jìn)電機(jī)的多功能操作。
1 控制器組成
為了能夠?qū)崿F(xiàn)步進(jìn)電機(jī)的手動(dòng)、自動(dòng)及遙控等多功能操作模式,設(shè)計(jì)出如圖1所示的系統(tǒng)組成原理圖。由圖1知,該系統(tǒng)主要由傳感器、A/D轉(zhuǎn)換器、手動(dòng)輸入控制、紅外線接收與發(fā)送電路、時(shí)鐘控制電路、顯示電路、電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)及單片機(jī)控制器等部分組成。
其中手動(dòng)輸入控制電路主要用來實(shí)現(xiàn)系統(tǒng)參數(shù)的設(shè)置,以便在手動(dòng)模式下控制電機(jī)的正反轉(zhuǎn);時(shí)鐘控制電路一方面用來提供時(shí)鐘信息,另一方面可以實(shí)現(xiàn)步進(jìn)電機(jī)的定時(shí)啟動(dòng)與停止;傳感器及A/D轉(zhuǎn)換電路主要實(shí)現(xiàn)自動(dòng)狀態(tài)時(shí),根據(jù)外部的檢測(cè)信號(hào),通過軟件開發(fā)實(shí)現(xiàn)不同要求下步進(jìn)電機(jī)的自動(dòng)運(yùn)行;紅外發(fā)送與接收電路主要負(fù)責(zé)發(fā)送外部紅外控制信息及接收遙控器發(fā)送來的控制信息,并送給單片機(jī)控制器進(jìn)行解碼,從而發(fā)出控制命令;顯示電路主要實(shí)現(xiàn)對(duì)系統(tǒng)運(yùn)行過程中的狀態(tài)信息及工作模式進(jìn)行顯示;單片機(jī)控制器是系統(tǒng)的核心部件,完成對(duì)輸入信號(hào)的采集,通過預(yù)先設(shè)置的算法進(jìn)行運(yùn)算、判斷及處理,并發(fā)出控制命令或輸出相應(yīng)的顯示信息。電機(jī)驅(qū)動(dòng)電路接收控制器發(fā)出的控制命令,驅(qū)動(dòng)步進(jìn)電機(jī)實(shí)現(xiàn)正轉(zhuǎn)或反轉(zhuǎn)。
2 硬件電路設(shè)計(jì)
根據(jù)圖1所示組成框圖,選擇89C2051單片機(jī)作為控制器,以4×4輸入鍵盤和按鈕作為手動(dòng)輸入電路,選用DS1302作為時(shí)鐘電路,以LCD 1602作為輸出顯示電路,選擇HS0038作為紅外接收電路,采用PCF8591作為A/D轉(zhuǎn)換裝置,傳感器選擇了光敏元件。選用ULN2003步進(jìn)驅(qū)動(dòng)器,對(duì)型號(hào)為28BYJ48型步進(jìn)電機(jī)進(jìn)行驅(qū)動(dòng)。下面主要介紹步進(jìn)電機(jī)及步進(jìn)驅(qū)動(dòng)器,紅外接收及時(shí)鐘電路的設(shè)計(jì)。
2.1 步進(jìn)電機(jī)及步進(jìn)驅(qū)動(dòng)器
(1)步進(jìn)電機(jī)
步進(jìn)電機(jī)選用的是28BYJ48型四相八拍電機(jī),電壓為DC5V—DC12V。當(dāng)對(duì)步進(jìn)電機(jī)施加一系列連續(xù)不斷的控制脈沖時(shí),它可以連續(xù)不斷地轉(zhuǎn)動(dòng)。
每一個(gè)脈沖信號(hào)對(duì)應(yīng)步進(jìn)電機(jī)的某一相或兩相繞組的通電狀態(tài)改變一次,也就對(duì)應(yīng)轉(zhuǎn)子轉(zhuǎn)過一定的角度(一個(gè)步距角)。當(dāng)通電狀態(tài)的改變完成一個(gè)循環(huán)時(shí),轉(zhuǎn)子轉(zhuǎn)過一個(gè)齒距。四相步進(jìn)電機(jī)可以在不同的通電方式下運(yùn)行,常見的通電方式有單(單相繞組通電)四拍(A—B—C—D—A),雙(雙相繞組通電1四拍(AB—BC—CD—DA—AB),八拍(A—AB—B—BC—C—CD—D—DA—A)。
(2)步進(jìn)驅(qū)動(dòng)器
步進(jìn)驅(qū)動(dòng)器采用的是ULN2003驅(qū)動(dòng)器,它是一個(gè)單片高電壓、高電流的達(dá)林頓晶體管陣列集成電路。它是由7對(duì)NPN達(dá)林頓管組成的,它的高電壓輸出特性和陰極鉗位二極管可以轉(zhuǎn)換感應(yīng)負(fù)載。ULN2003是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控制電路中??芍苯域?qū)動(dòng)繼電器等負(fù)載。輸入5VTTL電平,輸出可達(dá)500mA/50V。達(dá)林頓管并聯(lián)可以承受更大的電流,ULN2003是高耐壓、大電流達(dá)林頓陳列。
(3)電機(jī)驅(qū)動(dòng)電路
28BYJ48型步進(jìn)電機(jī)是4相5線的步進(jìn)電機(jī),而且是減速步進(jìn)電機(jī),減速比為1:64,步進(jìn)角為5.625/64度。如果需要轉(zhuǎn)一圈,那么需要360/5.625x64=4096個(gè)脈沖信號(hào)。該步進(jìn)電機(jī)的耗電流為200 mA左右,采用ULN2003進(jìn)行驅(qū)動(dòng),驅(qū)動(dòng)端口為P1.0(A),P1.1(B),P1.2(C),P1.3(D)。正轉(zhuǎn)次序:AB組-BC組-CD組-DA組(即一個(gè)脈沖,正轉(zhuǎn)5.625度);反轉(zhuǎn)次序:AB組-AD組-CD組-CB組(即一個(gè)脈沖,正轉(zhuǎn)5.625度),其接線原理如圖2所示。
其中MOT1~MOT4依次接單片機(jī)的P1.0~P1.3口。
2.2 紅外線接收與發(fā)送電路
紅外線接收電路選用了型號(hào)為HS0038的集成紅外接收器,靜態(tài)時(shí)輸出端輸出高電平,當(dāng)接收到紅外信號(hào)后,按紅外信號(hào)的數(shù)據(jù)波形輸出負(fù)脈沖數(shù)據(jù)信號(hào)。HS0038工作頻率為38 kHz,能對(duì)收到遙控信號(hào)進(jìn)行放大、檢波、整形、解調(diào).得到TTL電平的編碼信號(hào),再送給單片機(jī),經(jīng)單片機(jī)解碼并執(zhí)行相關(guān)控制程序。
紅外接收電路的輸出接單片機(jī)的P3.2,該口對(duì)應(yīng)的第二功能是外部中斷0(INT0),利用該口的第二功能,一旦紅外線信號(hào)到來,P3.2被拉低,單片機(jī)中止當(dāng)前的工作轉(zhuǎn)移到接收、處理紅外信號(hào)。開啟中斷功能的目的,既減輕了單片機(jī)的工作負(fù)擔(dān),又保證接收到的紅外信號(hào)的完整性,單片機(jī)進(jìn)入睡眠后,利用外部中斷功能完成對(duì)單片機(jī)的喚醒,其接線圖如圖3所示。
紅外發(fā)送電路可選用昂達(dá)播放器的遙控器,也可采用電視遙控器。由于系統(tǒng)簡(jiǎn)單,采用昂達(dá)播放器的遙控器。
2.3 時(shí)鐘電路
時(shí)鐘電路采用DS1302集成芯片,其主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32768 Hz晶振,步進(jìn)電機(jī)的啟閉時(shí)間都保存在DS1302自帶的RAM中,不需要單獨(dú)的EEPROM。
DS1302與CPU的連接僅需要三條線,即SCLK(7)、I/O(6)、RST(5)。
3 系統(tǒng)軟件設(shè)計(jì)
軟件系統(tǒng)主要包括主程序、紅外中斷子程序、A/D轉(zhuǎn)換子程序、顯示子程序、時(shí)鐘控制子程序及步進(jìn)電機(jī)程序。下面主要介紹紅外線解碼程序。
3.1 紅外線解碼原理
昂達(dá)播放器的遙控器產(chǎn)生的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶識(shí)別碼同定高8位地址為0BFH,低8位地址為40H;后16位為8位操作碼(功能碼)及其反碼。
遙控器按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108 ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在45~63 ms之間。
當(dāng)一個(gè)鍵按下超過36 ms,振蕩器使芯片激活,將發(fā)射一組108 ms的編碼脈沖,這108 ms發(fā)射代碼由一個(gè)起始碼(9 ms),一個(gè)結(jié)果碼(4.5 ms),低8位地址碼(9~18 ms),高8位地址碼(9~18 ms),8位數(shù)據(jù)碼(9~18 ms)和這8位數(shù)據(jù)的反碼(9~18 ms)組成。如果鍵按下超過108 ms仍未松開,接下來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9 ms)和結(jié)束碼(2.5 ms)組成。
其代碼寬度的計(jì)算方法為:
16位地址碼的最短寬度:1.12×16=18 ms
16位地址碼的最長(zhǎng)寬度:2.24 msX16=36 ms
已知8位數(shù)據(jù)代碼及其8位反代碼的寬度和不變:(1.12 ms+2.24 ms)x8=27 ms。所以得32位代碼的寬度為(18 ms+27 ms)~(36 ms+27 ms)。
解碼的關(guān)鍵是如何識(shí)別“0”和“1”,代碼格式以接收代碼為準(zhǔn),接收代碼與發(fā)射代碼反向。從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以0.56 ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56 ms,“1”為1.68 ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。如果從0.56 ms低電平過后,開始延時(shí),0.56 ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,
延時(shí)必須比0.56 ms長(zhǎng)些,但又不能超過1.12 ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12 ms+0.56 ms)/2=0.84 ms最為可靠,一般取0.84 ms左右均可;根據(jù)碼的格式,應(yīng)該等待9 ms的起始碼和4.5 ms的結(jié)果碼完成后才能讀碼。
3.2 解碼程序設(shè)計(jì)
根據(jù)以上分析,采用89C2051單片機(jī)實(shí)現(xiàn)紅外解解碼的思路為:有信號(hào)產(chǎn)生中斷→EA清零→延時(shí)小于9 ms (低電平)→等待高電平的到來→延時(shí)小于4.5 ms(高電平)→等待下一次高電平的到來→延時(shí)0.84 ms左右→讀區(qū)P3.2腳電平值→再等待下一次高電平的到來→延時(shí)0.84 ms左右→讀取P3.2腳電平值,依次取得32位代碼,前16位為識(shí)別碼,后18位既為8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼。解碼中斷服務(wù)程序流程圖如圖4所示。
4 結(jié)束語(yǔ)
通過系統(tǒng)調(diào)試及運(yùn)行結(jié)果表明,采用步進(jìn)電機(jī)作為執(zhí)行元件,89C2051單片機(jī)作為控制器,光敏元件傳感器作為檢測(cè)元件,以手動(dòng)輸入按鈕作為手動(dòng)輸入信號(hào),以紅外遙控裝置進(jìn)行遙控操作,并輔以時(shí)鐘控制及狀態(tài)顯示的步進(jìn)電機(jī)控制系統(tǒng),能夠方便實(shí)現(xiàn)步進(jìn)電機(jī)的手動(dòng)、自動(dòng)及遙控多功能操作,操作更加方便可靠。