以下作品由安信可社區(qū)用戶
King6688制作
01、SG90舵機(jī)介紹
首先介紹說一下什么是舵機(jī)。舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器。適用于一些需要角度不斷變化的,可以保持的控制系統(tǒng)。SG90就是舵機(jī)的一種。
舵機(jī)內(nèi)部有一個(gè)基準(zhǔn)電壓,單片機(jī)產(chǎn)生的PWM信號(hào)通過信號(hào)線進(jìn)入舵機(jī),與舵機(jī)內(nèi)部的基準(zhǔn)電壓作比較,獲得電壓差輸出。電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片上,從而決定正反轉(zhuǎn)。開始旋轉(zhuǎn)的時(shí)候,舵機(jī)內(nèi)部通過級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為零,電機(jī)停止轉(zhuǎn)動(dòng)。
SG90舵機(jī)的工作電壓一般為4.8V~ 6V,通常使用5V供電,最大扭矩為1.6kg/cm??刂菩盘?hào)采用50Hz PWM脈沖。分為180度版本和360度版本,外觀上看180度的內(nèi)部帶擋板,360度的則沒有。其有三個(gè)引腳,分別是紅線(VCC),棕線(GND)和橙線(信號(hào)線)。
SG90舵機(jī)的注意事項(xiàng):
使用SG90舵機(jī)時(shí)需要注意以下事項(xiàng):
1. 確保使用的電源符合舵機(jī)的工作電壓要求。
2. 確保舵機(jī)的接線正確,避免接反或短路等情況。
3. 在使用過程中,避免超過舵機(jī)的工作角度范圍,以免損壞舵機(jī)。
4. 在使用過程中,避免過度負(fù)載,以免損壞舵機(jī)。
5. 在使用過程中,避免過度震動(dòng),以免影響舵機(jī)的正常工作。
02、移植過程
PWM驅(qū)動(dòng)規(guī)則
SG90舵機(jī)采用50Hz的PWM波驅(qū)動(dòng),需要的PWM高電平在0.5ms~2.5ms之間,脈沖寬度為20ms:
180度和360度的區(qū)別:
180度的舵機(jī)可以控制角度
360度的舵機(jī)只能控制正反轉(zhuǎn)和速度
驅(qū)動(dòng)邏輯
180度:
t = 0.5ms————轉(zhuǎn)動(dòng) 0 °
t = 1.0ms————轉(zhuǎn)動(dòng) 45°
t = 1.5ms————轉(zhuǎn)動(dòng) 90°
t = 2.0ms————轉(zhuǎn)動(dòng) 135°
t = 2.5ms————轉(zhuǎn)動(dòng)180°
360度:
t = 0.5ms————正轉(zhuǎn)最大轉(zhuǎn)速
t = 1.5ms————不轉(zhuǎn)
t = 2.5ms————反轉(zhuǎn)最大轉(zhuǎn)速
03、接線
04、算法簡(jiǎn)介
PWM 頻率 = WB2的BCLK頻率80MHz ÷ 分頻Divider ÷ 周期Period ,即:80000000 ÷ 80 ÷ 20000 = 50Hz
// 根據(jù)圖上的時(shí)間,計(jì)算出對(duì)應(yīng)的threshold
/** 占空比,占空比是指高電平在一個(gè)周期之內(nèi)所占的時(shí)間比率:
* 轉(zhuǎn)動(dòng)0度(-90度)需要的占空比為: 0.5/20 = 2.5%
* 轉(zhuǎn)動(dòng)45度(-45度)需要的占空比為: 1.0/20 = 5%
* 轉(zhuǎn)動(dòng)90度(-0度)需要的占空比為: 1.5/20 = 7.5%
* 轉(zhuǎn)動(dòng)135度(45度)需要的占空比為:2.0/20 = 10%
* 轉(zhuǎn)動(dòng)180度(90度)需要的占空比為:2.5/20 = 12.5%
* Period為20000時(shí),帶入以上公式,得出對(duì)應(yīng)的高電平時(shí)間分別為:
* 20000 * 0.025 = 500
* 20000 * 0.05 = 1000
* 20000 * 0.075 = 1500
* 20000 * 0.1 = 2000
* 20000 * 0.125 = 2500
05、關(guān)鍵代碼
PWM_Smart_Configure2(PWM_IO4, 80, 20000, 500); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Smart_Configure2(PWM_IO4, 80, 20000, 1000); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Smart_Configure2(PWM_IO4, 80, 20000, 1500); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Smart_Configure2(PWM_IO4, 80, 20000, 2000); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Smart_Configure2(PWM_IO4, 80, 20000, 2500); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000));
06、效果視頻
(用的IO3,湊合看吧~~)
【Ai-WB2-32S驅(qū)動(dòng)SG90舵機(jī)-嗶哩嗶哩】 https://b23.tv/5VUodni
審核編輯 黃宇
-
舵機(jī)控制
+關(guān)注
關(guān)注
3文章
45瀏覽量
22369 -
安信可
+關(guān)注
關(guān)注
0文章
151瀏覽量
3974
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論