《電子技術(shù)應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 利用單片機PWM信號進行舵機控制(圖)
利用單片機PWM信號進行舵機控制(圖)
摘要: 在機器人機電控制系統(tǒng)中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統(tǒng)和航模中作為基本的輸出執(zhí)行機構(gòu),其簡單的控制和輸出使得單片機系統(tǒng)非常容易與之接口。
Abstract:
Key words :

        在機器人機電控制系統(tǒng)中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統(tǒng)和航模中作為基本的輸出執(zhí)行機構(gòu),其簡單的控制和輸出使得單片機系統(tǒng)非常容易與之接口。

        舵機是一種位置伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。其工作原理是:控制信號由接收機的通道進入信號調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個基準電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅(qū)動芯片決定電機的正反轉(zhuǎn)。當電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。




圖1 舵機的控制要求


        舵機的控制信號是PWM信號,利用占空比的變化改變舵機的位置。一般舵機的控制要求如圖1所示。

單片機實現(xiàn)舵機轉(zhuǎn)角控制
        可以使用FPGA、模擬電路、單片機來產(chǎn)生舵機的控制信號,但FPGA成本高且電路復雜。對于脈寬調(diào)制信號的脈寬變換,常用的一種方法是采用調(diào)制信號獲取有源濾波后的直流電壓,但是需要50Hz(周期是20ms)的信號,這對運放器件的選擇有較高要求,從電路體積和功耗考慮也不易采用。5mV以上的控制電壓的變化就會引起舵機的抖動,對于機載的測控系統(tǒng)而言,電源和其他器件的信號噪聲都遠大于5mV,所以濾波電路的精度難以達到舵機的控制精度要求。

       也可以用單片機作為舵機的控制單元,使PWM信號的脈沖寬度實現(xiàn)微秒級的變化,從而提高舵機的轉(zhuǎn)角精度。單片機完成控制算法,再將計算結(jié)果轉(zhuǎn)化為PWM信號輸出到舵機,由于單片機系統(tǒng)是一個數(shù)字系統(tǒng),其控制信號的變化完全依靠硬件計數(shù),所以受外界干擾較小,整個系統(tǒng)工作可靠。

        單片機系統(tǒng)實現(xiàn)對舵機輸出轉(zhuǎn)角的控制,必須首先完成兩個任務:首先是產(chǎn)生基本的PWM周期信號,本設計是產(chǎn)生20ms的周期信號;其次是脈寬的調(diào)整,即單片機模擬PWM信號的輸出,并且調(diào)整占空比。

       當系統(tǒng)中只需要實現(xiàn)一個舵機的控制,采用的控制方式是改變單片機的一個定時器中斷的初值,將20ms分為兩次中斷執(zhí)行,一次短定時中斷和一次長定時中斷。這樣既節(jié)省了硬件電路,也減少了軟件開銷,控制系統(tǒng)工作效率和控制精度都很高。

        具體的設計過程:例如想讓舵機轉(zhuǎn)向左極限的角度,它的正脈沖為2ms,則負脈沖為20ms-2ms=18ms,所以開始時在控制口發(fā)送高電平,然后設置定時器在2ms后發(fā)生中斷,中斷發(fā)生后,在中斷程序里將控制口改為低電平,并將中斷時間改為18ms,再過18ms進入下一次定時中斷,再將控制口改為高電平,并將定時器初值改為2ms,等待下次中斷到來,如此往復實現(xiàn)PWM信號輸出到舵機。用修改定時器中斷初值的方法巧妙形成了脈沖信號,調(diào)整時間段的寬度便可使伺服機靈活運動。

         為保證軟件在定時中斷里采集其他信號,并且使發(fā)生PWM信號的程序不影響中斷程序的運行(如果這些程序所占用時間過長,有可能會發(fā)生中斷程序還未結(jié)束,下次中斷又到來的后果),所以需要將采集信號的函數(shù)放在長定時中斷過程中執(zhí)行,也就是說每經(jīng)過兩次中斷執(zhí)行一次這些程序,執(zhí)行的周期還是20ms。軟件流程如圖2所示。



如圖2 產(chǎn)生PWM信號的軟件流程

        如果系統(tǒng)中需要控制幾個舵機的準確轉(zhuǎn)動,可以用單片機和計數(shù)器進行脈沖計數(shù)產(chǎn)生PWM信號。

        脈沖計數(shù)可以利用51單片機的內(nèi)部計數(shù)器來實現(xiàn),但是從軟件系統(tǒng)的穩(wěn)定性和程序結(jié)構(gòu)的合理性看,宜使用外部的計數(shù)器,還可以提高CPU的工作效率。實驗后從精度上考慮,對于FUTABA系列的接收機,當采用1MHz的外部晶振時,其控制電壓幅值的變化為0.6mV,而且不會出現(xiàn)誤差積累,可以滿足控制舵機的要求。最后考慮數(shù)字系統(tǒng)的離散誤差,經(jīng)估算誤差的范圍在±0.3%內(nèi),所以采用單片機和8253、8254這樣的計數(shù)器芯片的PWM信號產(chǎn)生電路是可靠的。圖3是硬件連接圖。

圖3 PWA信號的計數(shù)和輸出電路 

        基于8253產(chǎn)生PWM信號的程序主要包括三方面內(nèi)容:一是定義8253寄存器的地址,二是控制字的寫入,三是數(shù)據(jù)的寫入。軟件流程如圖4所示,具體代碼如下。
//關鍵程序及注釋:
//定時器T0中斷,向8253發(fā)送控制字和數(shù)據(jù)
void T0Int() interrupt 1
{
TH0 = 0xB1;
TL0 = 0xE0; //20ms的時鐘基準
//先寫入控制字,再寫入計數(shù)值
SERVO0 = 0x30; //選擇計數(shù)器0,寫入控制字
PWM0 = BUF0L; //先寫低,后寫高
PWM0 = BUF0H;
SERVO1 = 0x70; //選擇計數(shù)器1,寫入控制字
PWM1 = BUF1L;
PWM1 = BUF1H;
SERVO2 = 0xB0; //選擇計數(shù)器2,寫入控制字
PWM2 = BUF2L;
PWM2 = BUF2H;
}



圖4 基于8253產(chǎn)生PWA信號的軟件流程

        當系統(tǒng)的主要工作任務就是控制多舵機的工作,并且使用的舵機工作周期均為20ms時,要求硬件產(chǎn)生的多路PWM波的周期也相同。使用51單片機的內(nèi)部定時器產(chǎn)生脈沖計數(shù),一般工作正脈沖寬度小于周期的1/8,這樣可以在1個周期內(nèi)分時啟動各路PWM波的上升沿,再利用定時器中斷T0確定各路PWM波的輸出寬度,定時器中斷T1控制20ms的基準時間。

       第1次定時器中斷T0按20ms的 1/8設置初值,并設置輸出I/O口,第1次T0定時中斷響應后,將當前輸出I/O口對應的引腳輸出置高電平,設置該路輸出正脈沖寬度,并啟動第2次定時器中斷,輸出I/O口指向下一個輸出口。第2次定時器定時時間結(jié)束后,將當前輸出引腳置低電平,設置此中斷周期為20ms的1/8減去正脈沖的時間,此路PWM信號在該周期中輸出完畢,往復輸出。在每次循環(huán)的第16次(2×8=16)中斷實行關定時中斷T0的操作,最后就可以實現(xiàn)8路舵機控制信號的輸出。

        也可以采用外部計數(shù)器進行多路舵機的控制,但是因為常見的8253、8254芯片都只有3個計數(shù)器,所以當系統(tǒng)需要產(chǎn)生多路PWM信號時,使用上述方法可以減少電路,降低成本,也可以達到較高的精度。調(diào)試時注意到由于程序中脈沖寬度的調(diào)整是靠調(diào)整定時器的初值,中斷程序也被分成了8個狀態(tài)周期,并且需要嚴格的周期循環(huán),而且運行其他中斷程序代碼的時間需要嚴格把握。

         在實際應用中,采用51單片機簡單方便地實現(xiàn)了舵機控制需要的PWM信號。對機器人舵機控制的測試表明,舵機控制系統(tǒng)工作穩(wěn)定,PWM占空比 (0.5~2.5ms 的正脈沖寬度)和舵機的轉(zhuǎn)角(-90°~90°)線性度較好。

參考文獻
1 胡漢才.單片機原理及接口技術(shù).清華大學出版社.1996
2 王時勝,姜建平.采用單片機實現(xiàn)PWM式D/A轉(zhuǎn)換技術(shù).電子質(zhì)量.2004
3 劉歌群.盧京潮.閆建國.薛堯舜.用單片機產(chǎn)生7路舵機控制PWM波的方法.機械與電子.2004

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩免费一区二区三区视频| 99综合精品| 亚洲欧美日韩在线一区| 亚洲免费av观看| 亚洲国产日韩欧美在线图片| 欧美中文在线观看| 亚洲欧美国产日韩中文字幕| 一区二区三区视频在线看| 亚洲伦理网站| 日韩特黄影片| 中日韩在线视频| 一本色道久久综合| 一区二区三区欧美在线| 亚洲视频图片小说| 亚洲午夜在线观看视频在线| 日韩一级在线观看| 一区二区三区欧美| 亚洲先锋成人| 午夜精品国产| 久久激情中文| 亚洲精品久久久久久久久| 亚洲日本黄色| 日韩视频在线观看免费| 一区二区三区偷拍| 亚洲午夜av| 欧美亚洲三级| 亚洲三级视频| 亚洲承认在线| 久久久精品日韩| 久久久综合精品| 久久在线免费观看| 欧美jjzz| 欧美日韩和欧美的一区二区| 欧美色图五月天| 国产伦理精品不卡| 黄色免费成人| 亚洲欧洲日韩在线| 国产精品99久久99久久久二8 | 欧美性猛交视频| 国产精品日韩专区| 韩国欧美国产1区| 亚洲欧洲在线视频| 亚洲少妇诱惑| 久久激情视频免费观看| 洋洋av久久久久久久一区| 午夜精品理论片| 麻豆久久婷婷| 国产精品高清网站| 国内激情久久| 日韩亚洲欧美综合| 久久国产日本精品| 99成人免费视频| 欧美在线播放视频| 欧美—级a级欧美特级ar全黄| 日韩视频在线观看国产| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲色图自拍| 久久经典综合| 一区二区三区精品国产| 久久久精品午夜少妇| 欧美日本久久| 国产亚洲一区二区三区在线播放| 亚洲黄色毛片| 香蕉av777xxx色综合一区| 亚洲精品美女91| 欧美一区综合| 欧美另类一区| 国内精品模特av私拍在线观看| 亚洲毛片在线免费观看| 久久国产精品久久久| 在线亚洲自拍| 麻豆精品一区二区综合av| 国产精品女人网站| 亚洲经典在线看| 久久riav二区三区| 亚洲免费中文| 欧美成人影音| 国产午夜精品久久久久久久| 亚洲卡通欧美制服中文| 亚洲高清不卡| 欧美一级久久久| 欧美日韩中文在线| 在线成人小视频| 西西裸体人体做爰大胆久久久| 夜夜精品视频| 欧美成人午夜免费视在线看片 | 一区二区三区国产盗摄| 久久性天堂网| 国产精品一区久久久久| 亚洲精品视频啊美女在线直播| 欧美综合二区| 欧美一区二区在线| 欧美日韩午夜| 亚洲三级电影全部在线观看高清| 韩国久久久久| 欧美金8天国| 国一区二区在线观看| 最新日韩在线视频| 久久福利电影| 欧美一区二区三区免费视频| 欧美片在线观看| 在线播放一区| 欧美中文字幕| 久久黄色小说| 国产精品一区久久| 亚洲午夜免费福利视频| 一区二区三区偷拍| 欧美精品免费看| 亚洲二区视频| 亚洲国产小视频| 久久综合影视| 狠久久av成人天堂| 久久精品亚洲精品| 久热精品视频在线| 狠狠色狠狠色综合日日tαg | 亚洲性视频网址| 欧美精品一区在线发布| 亚洲国产第一页| 亚洲黄网站黄| 欧美成年视频| 在线看国产日韩| 亚洲国产导航| 老司机成人在线视频| 狠狠干狠狠久久| 亚洲国产精彩中文乱码av在线播放| 久久久免费精品视频| 黄色欧美成人| 亚洲欧洲中文日韩久久av乱码| 久久夜色精品国产| 伊人精品视频| 亚洲美女在线视频| 欧美美女福利视频| 日韩一级大片在线| 亚洲专区欧美专区| 国产精品视频网站| 欧美一区二区三区精品| 久久精品一区四区| 一区二区视频免费在线观看| 亚洲经典视频在线观看| 欧美高清视频一区二区| 亚洲精品视频在线播放| 一区二区欧美日韩| 国产精品伦子伦免费视频| 午夜精品一区二区三区电影天堂 | 亚洲日本中文字幕区| 一区二区三区日韩在线观看| 欧美网站大全在线观看| 亚洲欧美日本国产有色| 一本色道综合亚洲| 在线视频欧美日韩| 亚洲视频网在线直播| 欧美成va人片在线观看| 91久久国产综合久久91精品网站| 一本一本a久久| 国产精品久在线观看| 欧美一级二区| 男女激情视频一区| 日韩一级裸体免费视频| 欧美在线免费观看亚洲| 国语自产精品视频在线看8查询8| 亚洲国产你懂的| 欧美日韩在线亚洲一区蜜芽| 性8sex亚洲区入口| 欧美成人日韩| 亚洲影音先锋| 蜜桃久久av一区| 一本到12不卡视频在线dvd| 久久国产欧美| 亚洲人成高清| 香蕉尹人综合在线观看| 一区二区在线视频观看| 一区二区三区四区五区精品视频| 国产精品影音先锋| 亚洲国产成人av在线| 国产欧美在线观看| 一区二区三区毛片| 久久久久久久一区| 亚洲精选大片| 久久精品视频一| 亚洲人体1000| 久久精品国产一区二区电影| 亚洲精品欧美在线| 久久国产一区二区三区| 亚洲美女精品一区| 久久精品成人| 亚洲日本成人网| 久久精品噜噜噜成人av农村| 亚洲精品视频在线| 久久一二三国产| 亚洲午夜小视频| 欧美精品 日韩| 欧美一级理论性理论a| 欧美日韩视频免费播放| 久久精品视频va| 国产精品美女| 在线午夜精品| 亚洲国产aⅴ天堂久久| 久久精品国产一区二区三| 一区二区三区久久久| 欧美福利视频一区|