一、舵機原理
如下圖所示,本次例程使用的是SG90 9g舵機
SG90舵機應(yīng)用
SG90舵機目前在高檔遙控玩具,如航模、包括飛機模型、潛艇模型、遙控機器人中已經(jīng)使用得比較普遍。
SG90舵機導(dǎo)線
SG90舵機上有三根線,分別是GND(棕色線)、VCC(紅色線)和SIG(黃色線),也就是地線、電源線和信號線。
SG90舵機工作原理
控制信號由接收機的通道進入信號調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms 的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅(qū)動芯片決定電機的正反轉(zhuǎn)。當(dāng)電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。SG90舵機:屬于模擬舵機,需要一直發(fā)送信號。
SG90舵機舵機的控制
舵機的控制一般需要一個20ms 左右的時基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms 范圍內(nèi)的角度控制脈沖部分。以180 度角度伺服為例,那么對應(yīng)的控制關(guān)系是這樣的:
0.5ms ---------- 0 度;500us
1.0ms ---------- 45 度;
1.5ms ---------- 90 度;
2.0ms ---------- 135 度;
2.5ms ---------- 180 度;
小型舵機的工作電壓一般為4.8V 或6V,轉(zhuǎn)速也不是很快,一般為0.22/60 度或0.18/60 度,所以假如你更改角度控制脈沖的寬度太快時,舵機可能反應(yīng)不過來。如果需要更快速地反應(yīng),就需要更高的轉(zhuǎn)速了。
二、PWM輸出原理
PWM,英文名Pulse Width Modulation,是脈沖寬度調(diào)制縮寫,它是通過對一系列脈沖的寬度進行
調(diào)制,等效出所需要的波形(包含形狀以及幅值),對模擬信號電平進行數(shù)字編碼。
頻率ARR、占空比CRRx
頻率是指每秒鐘信號從高電平到低電平再回到高電平的次數(shù),為一個PWM波周期的倒數(shù)。
頻率是系統(tǒng)時鐘控制,
占空比是指高電平持續(xù)時間比一個周期持續(xù)的時間。通過控制占空比,來控制輸出的等效電壓。
所以對于方波的話,頻率和占空比就確定了一個波。
三、例程配置
通常,我們在單片機中會使用定時器中斷來實現(xiàn)pwm波中高低電平的轉(zhuǎn)換,以及控制一個pwm波周期。
在單片機的io口中,并不是每一個io口都能輸出pwm,所以我們要打開數(shù)據(jù)手冊
能看到PB14的功能復(fù)用
在本次基于CW32030c8單片機例程中,選擇使用高級定時器,并且使用CH2B通道 ,即ATIM_CH2B
計算周期:用到的PLCK---8MHZ
然后8倍預(yù)分頻得到1MHZ,因為舵機中的周期為20ms,所以需要得到20ms的周期:
1/1mhz得到機器周期,通過配置高級定時器的重裝載值A(chǔ)RR:19999(從0計數(shù)),機器周期乘以重裝載值,剛好等于20ms,這樣我們就設(shè)計好了周期,
在函數(shù)中設(shè)置比較值,也就能控制占空比了。
四、重要代碼
voidATIM_IRQHandlerCallBack(void)//高級定時器中斷處理回調(diào)函數(shù) { staticuint16_tduration=0; staticuint8_tcnt=1; staticuint8_tdir=0; if(ATIM_GetITStatus(ATIM_IT_OVF))//獲取ATIM中斷標(biāo)志位即溢出 { ATIM_ClearITPendingBit(ATIM_IT_OVF);//清除ATIM中斷標(biāo)志位即歸零 if(cnt++>50)//20msx50=1000ms1秒一次 { cnt=1; if(!dir)//判斷狀態(tài) { duration+=500;//每次提高占空比2.5%,500/20000 if(duration>=2500)//舵機占空比最高12.5%,即2500 { dir=1;//改變方向 } } ATIM_SetCompare2B(duration);//輸出占空比 } } if(ATIM_GetITStatus(ATIM_IT_C2BF))//通道CH2B比較匹配標(biāo)志中斷 { ATIM_ClearITPendingBit(ATIM_IT_C2BF);//清除ATIM中斷標(biāo)志位 } }
來源:CW32生態(tài)社區(qū)
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理3
審核編輯 黃宇
-
舵機控制
+關(guān)注
關(guān)注
3文章
45瀏覽量
22385 -
CW32
+關(guān)注
關(guān)注
1文章
210瀏覽量
670
發(fā)布評論請先 登錄
相關(guān)推薦
評論