以下作品由安信可社區用戶
King6688制作
01、SG90舵機介紹
首先介紹說一下什么是舵機。舵機是一種位置(角度)伺服的驅動器。適用于一些需要角度不斷變化的,可以保持的控制系統。SG90就是舵機的一種。
舵機內部有一個基準電壓,單片機產生的PWM信號通過信號線進入舵機,與舵機內部的基準電壓作比較,獲得電壓差輸出。電壓差的正負輸出到電機驅動芯片上,從而決定正反轉。開始旋轉的時候,舵機內部通過級聯減速齒輪帶動電位器旋轉,使得電壓差為零,電機停止轉動。
SG90舵機的工作電壓一般為4.8V~ 6V,通常使用5V供電,最大扭矩為1.6kg/cm。控制信號采用50Hz PWM脈沖。分為180度版本和360度版本,外觀上看180度的內部帶擋板,360度的則沒有。其有三個引腳,分別是紅線(VCC),棕線(GND)和橙線(信號線)。

SG90舵機的注意事項:
使用SG90舵機時需要注意以下事項:
1. 確保使用的電源符合舵機的工作電壓要求。
2. 確保舵機的接線正確,避免接反或短路等情況。
3. 在使用過程中,避免超過舵機的工作角度范圍,以免損壞舵機。
4. 在使用過程中,避免過度負載,以免損壞舵機。
5. 在使用過程中,避免過度震動,以免影響舵機的正常工作。
02、移植過程
PWM驅動規則
SG90舵機采用50Hz的PWM波驅動,需要的PWM高電平在0.5ms~2.5ms之間,脈沖寬度為20ms:


180度和360度的區別:
180度的舵機可以控制角度
360度的舵機只能控制正反轉和速度
驅動邏輯
180度:
t = 0.5ms————轉動 0 °
t = 1.0ms————轉動 45°
t = 1.5ms————轉動 90°
t = 2.0ms————轉動 135°
t = 2.5ms————轉動180°
360度:
t = 0.5ms————正轉最大轉速
t = 1.5ms————不轉
t = 2.5ms————反轉最大轉速
03、接線

04、算法簡介
PWM 頻率 = WB2的BCLK頻率80MHz ÷ 分頻Divider ÷ 周期Period ,即:80000000 ÷ 80 ÷ 20000 = 50Hz
// 根據圖上的時間,計算出對應的threshold
/** 占空比,占空比是指高電平在一個周期之內所占的時間比率:
* 轉動0度(-90度)需要的占空比為: 0.5/20 = 2.5%
* 轉動45度(-45度)需要的占空比為: 1.0/20 = 5%
* 轉動90度(-0度)需要的占空比為: 1.5/20 = 7.5%
* 轉動135度(45度)需要的占空比為:2.0/20 = 10%
* 轉動180度(90度)需要的占空比為:2.5/20 = 12.5%
* Period為20000時,帶入以上公式,得出對應的高電平時間分別為:
* 20000 * 0.025 = 500
* 20000 * 0.05 = 1000
* 20000 * 0.075 = 1500
* 20000 * 0.1 = 2000
* 20000 * 0.125 = 2500
05、關鍵代碼
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驅動SG90舵機-嗶哩嗶哩】 https://b23.tv/5VUodni

審核編輯 黃宇
-
舵機控制
+關注
關注
3文章
46瀏覽量
22639 -
安信可
+關注
關注
0文章
184瀏覽量
4357
發布評論請先 登錄
低價不貴!安信可WiFi+BLE模組Ai-WB2系列

【RA-Eco-RA4E2-64PIN-V1.0開發板試用】+02+舵機控制+串口通訊
安信可Ai-WB2系列的優勢是?一秒讀懂!
用Ai-WB2開發板做智能家居全彩LED小夜燈

外設移植 安信可Ai-WB2+FPM383C指紋

機智云開源自動化控制篇-避障式舵機轉向系統


安信可Ai-WB2系列模組/開發板連接AWS亞馬遜云方法

評論