AT89C2051多路舵機控制電路詳解
舵機是一種位置伺服的驅動(dòng)器。它接收一定的控制信號,輸出一定的角度,適用于那些需要角度不斷變化并可以保持的控制系統。在微機電系統和航模中,它是一個(gè)基本的輸出執行機構。以FUTABA-S3003型舵機為例,圖1是FUFABA-S3003型舵機的內部電路。
本文引用地址:http://dyxdggzs.com/article/282107.htm舵機的工作原理是:PWM信號由接收通道進(jìn)入信號解調電路BA66881。的12腳進(jìn)行解調,獲得一個(gè)直流偏置電壓。該直流偏置電壓與電位器的電壓比較,獲得電壓差由BA6688的3腳輸出。該輸出送人電機驅動(dòng)集成電路BA6686,以驅動(dòng)電機正反轉。當電機轉速一定時(shí),通過(guò)級聯(lián)減速齒輪帶動(dòng)電位器R。,旋轉,直到電壓差為O,電機停止轉動(dòng)。舵機的控制信號是PWM信號,利用占空比的變化改變舵機的位置。

舵機的控制方法
電源線(xiàn)和地線(xiàn)用于提供舵機內部的直流電機和控制線(xiàn)路所需的能源.電壓通常介于4~6V,一般取5V。注意,給舵機供電電源應能提供足夠的功率??刂凭€(xiàn)的輸入是一個(gè)寬度可調的周期性方波脈沖信號,方波脈沖信號的周期為20 ms(即頻率為50 Hz)。當方波的脈沖寬度改變時(shí),舵機轉軸的角度發(fā)生改變,角度變化與脈沖寬度的變化成正比。某型舵機的輸出軸轉角與輸入信號的脈沖寬度之間的關(guān)系可用圍 3來(lái)表示。

舵機控制器硬件電路設計
從上述舵機轉角的控制方法可看出,舵機的控制信號實(shí)質(zhì)是一個(gè)可嗣寬度的方波信號(PWM)。該方波信號可由FPGA、模擬電路或單片機來(lái)產(chǎn)生。采用FPGA成本較高,用模擬電路來(lái)實(shí)現則電路較復雜,不適合作多路輸出。一般采用單片機作舵機的控制器。目前采用單片機做舵機控制器的方案比較多,可以利用單片機的定時(shí)器中斷實(shí)現PWM。該方案將20ms的周期信號分為兩次定時(shí)中斷來(lái)完成:一次定時(shí)實(shí)現高電平定時(shí)Th;一次定時(shí)實(shí)現低電平定時(shí)T1。Th、T1的時(shí)間值隨脈沖寬度的變換而變化,但,Th+T1=20ms。該方法的優(yōu)點(diǎn)是,PWM信號完全由單片機內部定時(shí)器的中斷來(lái)實(shí)現,不需要添加外圍硬件。缺點(diǎn)是一個(gè)周期中的PWM信號要分兩次中斷來(lái)完成,兩次中斷的定時(shí)值計算較麻煩;為了滿(mǎn)足20ms的周期,單片機晶振的頻率要降低;不能實(shí)現多路輸出。也可以采用單片機+8253計數器的實(shí)現方案。該方案由單片機產(chǎn)生計數脈沖(或外部電路產(chǎn)生計數脈沖)提供給8253進(jìn)行計數,由單片機給出8253的計數比較值來(lái)改變輸出脈寬。該方案的優(yōu)點(diǎn)是可以實(shí)現多路輸出,軟件設計較簡(jiǎn)單;缺點(diǎn)是要添加l片8253計數器,增加了硬件成本。本文在綜合上述兩個(gè)單片機舵機控制方案基礎上,提出了一個(gè)新的設計方案,如圖4所示。

該方案的舵機控制器以AT89C2051($0.5940)單片機為核心,555構成的振蕩器作為定時(shí)基準,單片機通過(guò)對555振蕩器產(chǎn)生的脈沖信號進(jìn)行計數來(lái)產(chǎn)生PWM信號。該控制器中單片機可以產(chǎn)生8個(gè)通道的PWM信號,分別由AT89C2051的P1.0~Pl.7(12~19引腳)端口輸出。輸出的8 路PWM信號通過(guò)光耦隔離傳送到下一級電路中。因為信號通過(guò)光耦傳送過(guò)程中進(jìn)行了反相,因此從光耦出來(lái)的信號必須再經(jīng)過(guò)反相器進(jìn)行反相。方波信號經(jīng)過(guò)光耦傳輸后,前沿和后沿會(huì )發(fā)生畸變,因此反相器采用CD40106($0.1125)施密特反相器對光耦傳輸過(guò)來(lái)的信號進(jìn)行整形,產(chǎn)生標準的PWM方波信號。筆者在實(shí)驗過(guò)程中發(fā)現,舵機在運行過(guò)程中要從電源吸納較大的電流,若舵機與單片機控制器共用一個(gè)電源,則舵機會(huì )對單片機產(chǎn)生較大的干擾。因此,舵機與單片機控制器采用兩個(gè)電源供電,兩者不共地,通過(guò)光耦來(lái)隔離,并且給舵機供電的電源最好采用輸出功率較大的開(kāi)關(guān)電源。該舵機控制器占用單片機的個(gè)SCI串口。串口用于接收上位機傳送過(guò)來(lái)的控制命令,以調節每一個(gè)通道輸出信號的脈沖寬度。MAX232($2.0686)為電平轉換器,將上位機的RS232($780.5000)電平轉換成TTL電平。
實(shí)現多路PWM信號的原理

在模擬電路中,PWM脈沖信號可以通過(guò)直流電平與鋸齒波信號比較來(lái)得到。在單片機中,鋸齒波可以通過(guò)對整型變量加1操作來(lái)實(shí)現,如圖5所示。假定單片機程序中設置一整型變量SawVal,其值變化范圍為O~N。555振蕩電路產(chǎn)生的外部計數時(shí)鐘信號輸入到AT89C2051的INTO腳。每當在外部計數時(shí)鐘脈沖的下降沿,單片機產(chǎn)生外部中斷,執行外部中斷INT0的中斷服務(wù)程序。每產(chǎn)生一次外部中斷,對SawVal執行一次加1操作,若SawVal已達到最大值N,則對SawVal清O。SawVal值的變化規律相當于鋸齒波,如圖5所示。若在單片機程序中設置另一整型變量DutyVal,其值的變化范圍為 O~N。每當在SawVal清0時(shí),DulyVal從上位機發(fā)送的控制命令中讀入脈沖寬度系數值,例如為H(0≤H≤N)。若 DutyVal≥SawVal,則對應端口輸出高電平;若DutyVal《Sawval,則對應端口輸出低電平。從圖5中可看出,若改變 DutyVal的值,則對應端口輸出脈沖的寬度發(fā)生變化,但輸出脈沖的頻率不變,此即為PWM波形。
晶振相關(guān)文章:晶振原理 脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
評論