一、舵機(jī)原理
如下圖所示,本次例程使用的是SG90 9g舵機(jī)

SG90舵機(jī)應(yīng)用
SG90舵機(jī)目前在高檔遙控玩具,如航模、包括飛機(jī)模型、潛艇模型、遙控機(jī)器人中已經(jīng)使用得比較普遍。
SG90舵機(jī)導(dǎo)線
SG90舵機(jī)上有三根線,分別是GND(棕色線)、VCC(紅色線)和SIG(黃色線),也就是地線、電源線和信號(hào)線。
SG90舵機(jī)工作原理
控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms 的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動(dòng)。SG90舵機(jī):屬于模擬舵機(jī),需要一直發(fā)送信號(hào)。
SG90舵機(jī)舵機(jī)的控制
舵機(jī)的控制一般需要一個(gè)20ms 左右的時(shí)基脈沖,該脈沖的高電平部分一般為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 度;
小型舵機(jī)的工作電壓一般為4.8V 或6V,轉(zhuǎn)速也不是很快,一般為0.22/60 度或0.18/60 度,所以假如你更改角度控制脈沖的寬度太快時(shí),舵機(jī)可能反應(yīng)不過來。如果需要更快速地反應(yīng),就需要更高的轉(zhuǎn)速了。
二、PWM輸出原理
PWM,英文名Pulse Width Modulation,是脈沖寬度調(diào)制縮寫,它是通過對一系列脈沖的寬度進(jìn)行
調(diào)制,等效出所需要的波形(包含形狀以及幅值),對模擬信號(hào)電平進(jìn)行數(shù)字編碼。
頻率ARR、占空比CRRx
頻率是指每秒鐘信號(hào)從高電平到低電平再回到高電平的次數(shù),為一個(gè)PWM波周期的倒數(shù)。
頻率是系統(tǒng)時(shí)鐘控制,
占空比是指高電平持續(xù)時(shí)間比一個(gè)周期持續(xù)的時(shí)間。通過控制占空比,來控制輸出的等效電壓。
所以對于方波的話,頻率和占空比就確定了一個(gè)波。

三、例程配置
通常,我們在單片機(jī)中會(huì)使用定時(shí)器中斷來實(shí)現(xiàn)pwm波中高低電平的轉(zhuǎn)換,以及控制一個(gè)pwm波周期。
在單片機(jī)的io口中,并不是每一個(gè)io口都能輸出pwm,所以我們要打開數(shù)據(jù)手冊

能看到PB14的功能復(fù)用
在本次基于CW32030c8單片機(jī)例程中,選擇使用高級(jí)定時(shí)器,并且使用CH2B通道 ,即ATIM_CH2B
計(jì)算周期:用到的PLCK---8MHZ
然后8倍預(yù)分頻得到1MHZ,因?yàn)槎鏅C(jī)中的周期為20ms,所以需要得到20ms的周期:
1/1mhz得到機(jī)器周期,通過配置高級(jí)定時(shí)器的重裝載值A(chǔ)RR:19999(從0計(jì)數(shù)),機(jī)器周期乘以重裝載值,剛好等于20ms,這樣我們就設(shè)計(jì)好了周期,
在函數(shù)中設(shè)置比較值,也就能控制占空比了。
四、重要代碼
voidATIM_IRQHandlerCallBack(void)//高級(jí)定時(shí)器中斷處理回調(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)//舵機(jī)占空比最高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)系小編進(jìn)行處理3
審核編輯 黃宇
-
舵機(jī)控制
+關(guān)注
關(guān)注
3文章
47瀏覽量
23016 -
CW32
+關(guān)注
關(guān)注
1文章
281瀏覽量
1686
發(fā)布評(píng)論請先 登錄
【有那么點(diǎn)詳細(xì)的CW32學(xué)習(xí)筆記】單片機(jī)啟動(dòng)\庫函數(shù)構(gòu)成
CW32F030C8T6數(shù)字簽名的實(shí)戰(zhàn)指南
CW32F030C8T6數(shù)字簽名實(shí)戰(zhàn)
基于武漢芯源CW32F030C8T6直流無刷電機(jī)評(píng)估開發(fā)板的設(shè)計(jì)方案
基于武漢芯源CW32F030C8T6直流無刷電機(jī)評(píng)估開發(fā)板的介紹
基于CW32F030單片機(jī)的模式二便攜充電槍應(yīng)用介紹
【CW32飯盒派開發(fā)板試用體驗(yàn)】CW32F030C8T6的開發(fā)板開箱視頻
基于CW32F030C8T6的無刷直流電機(jī)驅(qū)動(dòng)系統(tǒng)
基于武漢芯源CW32F030C8T6直流無刷電機(jī)評(píng)估開發(fā)板的介紹
基于CW32F030單片機(jī)的模式二便攜充電槍應(yīng)用介紹
詳細(xì)解析CW32F030C8T6的時(shí)鐘樹
【CW32模塊使用】SG90舵機(jī)

基于CW32F030C8T6的舵機(jī)控制應(yīng)用
評(píng)論