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