基于AT89S52單片機(jī)的舵機(jī)控制系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:文中設(shè)計(jì)了一種基于AT89S52單片機(jī)的舵機(jī)控制系統(tǒng),單片機(jī)通過定時(shí)中斷產(chǎn)生脈寬調(diào)制信號(PWM)來控制Futaba-S3003舵機(jī)轉(zhuǎn)動(dòng)。文中給出了系統(tǒng)的電路原理圖和程序設(shè)計(jì)思路。
關(guān)鍵詞:單片機(jī);AT89S52;舵機(jī)
舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并能夠保持的控制系統(tǒng)。能夠在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡單的控制和輸出使得單片機(jī)系統(tǒng)很容易與之接口。鑒于舵機(jī)廣泛的應(yīng)用,文中設(shè)計(jì)了一種基于AT89S52單片機(jī)的舵機(jī)控制系統(tǒng)。
1 Futaba-S3003舵機(jī)
常見的舵機(jī)廠家有:日本的Futaba、JR、SANWA等,國產(chǎn)的有北京的新幻想、吉林的振華等。之所以用Futaba-S3003是因?yàn)檫@個(gè)型號是市場上最常見的,也是價(jià)格相對較便宜的一種。圖1為Futaba-S3003舵機(jī)的實(shí)物圖,圖2為Futaba-S3003舵機(jī)的引線示意圖。
舵機(jī)輸出軸的轉(zhuǎn)角由周期為20ms的脈沖信號控制,脈沖信號的脈寬從0.5ms變化到2.5ms,舵機(jī)輸出軸的角度便隨之從0°線性變化到180°,以幾個(gè)特殊角度說明舵機(jī)輸出轉(zhuǎn)角與輸入信號脈沖寬度之間的關(guān)系,如圖3所示。
2 舵機(jī)控制系統(tǒng)設(shè)計(jì)
要想實(shí)現(xiàn)對舵機(jī)的控制,由舵機(jī)的工作原理可知,只需生成與所需位置角度相對應(yīng)的脈沖信號,即脈寬與位置角度相對應(yīng)的周期為20ms的脈沖信號。這種信號很容易由單片機(jī)生成,而且脈寬精度可以達(dá)到1μs,則舵機(jī)轉(zhuǎn)動(dòng)角度精度可達(dá)1μs×1 80°/2ms=0.09°。
舵機(jī)控制系統(tǒng)的proteus仿真原理圖如圖4所示,其中舵機(jī)的連接與圖2所示接法不一致,這是由于proteus軟件對舵機(jī)各引線的定義與Futaba-S3003不一致,實(shí)際電路的連接應(yīng)該以圖2為準(zhǔn)。
與單片機(jī)的P1.0腳相連的按鈕控制舵機(jī)角度增加,與P1.1腳相連的按鈕控制舵機(jī)角度減小,與P1.2腳相連的按鈕控制舵機(jī)角度回到初始位置,在本設(shè)計(jì)中使舵機(jī)回到90°的位置。單片機(jī)的P3.7腳產(chǎn)生PWM信號以控制舵機(jī),在該點(diǎn)連接示波器,仿真的時(shí)候可以看到PWM信號隨著按鈕的控制,脈寬增大或者減小或者恢復(fù)到1.5ms脈寬。
3 軟件設(shè)計(jì)
舵機(jī)控制程序用定時(shí)中斷產(chǎn)生PWM信號,用查詢方式對三個(gè)按鍵做出反應(yīng)。程序流程圖如圖5所示。單片機(jī)的P1.0腳連接的按鈕控制舵機(jī)角度增加,按鈕按下時(shí),先判斷是否達(dá)到了最大角度180°,如果達(dá)到了180°則重新查詢各個(gè)按鈕,否則舵機(jī)角度按照程序設(shè)定的幅度增加;單片機(jī)的P1.1腳連接的按鈕控制舵機(jī)角度減小,按鈕按下時(shí),先判斷是否達(dá)到了最小角度0°,如果達(dá)到了0°則重新查詢各個(gè)按鈕,否則舵機(jī)角度按照程序設(shè)定的幅度減?。粏纹瑱C(jī)的P1.2腳連接的按鈕控制舵機(jī)角度回到初始位置,即90°位置。
控制舵饑關(guān)鍵是要產(chǎn)生與角度相對應(yīng)的PWM信號,單片機(jī)通過定時(shí)器中斷產(chǎn)生PWM信號。定置,定義TL02和TH02用于PWM信號低電平定時(shí)初值設(shè)置。例如,舵機(jī)初始位置設(shè)在90°位置,對應(yīng)的PWM信號脈寬為1.5ms,即PWM信號高電平為1.5ms,低電平為20ms-1.5ms=18.5ms。所以在程序開始部分如下設(shè)置:
程序如此設(shè)置,系統(tǒng)上電后則在P3.7腳產(chǎn)生1.5ms高電平,然后18.5ms低電平,然后不斷重復(fù),舵機(jī)則保持在90°位置。如果有按鈕被按下,則舵機(jī)按照程序設(shè)置角度增加或者減小,實(shí)質(zhì)上是P3.7腳按照程序設(shè)置產(chǎn)生了脈寬增加或者減小的PWM信號。
4 結(jié)束語
文中設(shè)計(jì)了一個(gè)基于單片機(jī)的舵機(jī)控制系統(tǒng),控制方法簡單方便,而且精度比較高。在此控制系統(tǒng)的基礎(chǔ)上,在舵機(jī)上安裝受控部件,并增加音樂播放,可做成有聲有色的玩具。