以下作品由安信可社區用戶
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文章
47瀏覽量
23250 -
安信可
+關注
關注
0文章
226瀏覽量
5076
發布評論請先 登錄
零知IDE——基于零知標準板驅動PAJ7620U2手勢控制L9110風扇模塊和SG90舵機系統
SG90舵機控制秘籍:參數、電源與信號的三大要點,為您綜合分析了SG90舵機的控制參數注意事項
【WiFi+藍牙】智能門鎖、智能插座:用Ai-WB2系列,價格更低,性能更強
小智AI正式授權!安信可小安派語音AI開發板更新啦
安信可Ai-WB2+舵機控制(SG90)
評論