PWM(脈沖寬度調(diào)制)信號控制舵機的核心原理是通過固定周期內(nèi)高電平的持續(xù)時間(脈寬)對應(yīng)舵機的旋轉(zhuǎn)角度,舵機內(nèi)部電路根據(jù)檢測到的脈寬驅(qū)動電機轉(zhuǎn)動到目標(biāo)位置并保持。以下是具體實現(xiàn)過程:
一、核心控制邏輯
舵機的控制依賴于特定頻率和脈寬的 PWM 信號,關(guān)鍵參數(shù)如下:
PWM 信號頻率:固定為 50Hz(周期 20ms),這是舵機的標(biāo)準(zhǔn)接收頻率,頻率過高或過低會導(dǎo)致舵機無響應(yīng)或角度偏差。
高電平脈寬與角度對應(yīng)關(guān)系:舵機通過檢測一個周期內(nèi)高電平的時長來確定目標(biāo)角度,典型對應(yīng)關(guān)系為:
0.5ms 脈寬 → 0°(占空比 2.5%,即 0.5ms/20ms)
1.0ms 脈寬 → 45°(占空比 5.0%)
1.5ms 脈寬 → 90°(占空比 7.5%,中位角度)
2.0ms 脈寬 → 135°(占空比 10.0%)
2.5ms 脈寬 → 180°(占空比 12.5%)
二、舵機內(nèi)部工作流程
當(dāng) PWM 信號通過信號線輸入舵機后,內(nèi)部電路會執(zhí)行以下步驟:
信號檢測:舵機內(nèi)部的控制電路接收 PWM 信號,解析高電平持續(xù)時間,確定目標(biāo)角度。
電壓比較:將檢測到的脈寬轉(zhuǎn)換為對應(yīng)的偏置電壓,與舵機內(nèi)部電位器(隨輸出軸同步轉(zhuǎn)動)的電壓進行比較,產(chǎn)生電壓差。
電機驅(qū)動:電壓差觸發(fā)電機轉(zhuǎn)動,通過減速齒輪組帶動輸出軸旋轉(zhuǎn),同時電位器也隨之轉(zhuǎn)動,改變自身電壓。
位置鎖定:當(dāng)電位器電壓與目標(biāo)偏置電壓相等(電壓差為 0)時,電機停止轉(zhuǎn)動,舵機保持在目標(biāo)角度。
三、硬件連接與實現(xiàn)步驟
硬件準(zhǔn)備:
控制器:Arduino UNO(需支持 PWM 輸出,引腳標(biāo)有 “~”)。
舵機:如 SG90(3 線制:紅色 VCC、棕色 GND、黃色信號線)。
電源:小舵機可直接接 Arduino 的 5V 電源,大扭矩舵機需外接獨立電源(避免燒毀控制器)。
接線方式:
舵機 VCC → Arduino 5V(或外接電源正極)。
舵機 GND → Arduino GND(必須共地,否則信號紊亂)。
舵機信號線 → Arduino PWM 引腳(如~9)。
軟件編程:
使用 Arduino 自帶的Servo.h庫簡化控制,示例代碼如下:
若需更精準(zhǔn)控制,可使用writeMicroseconds()直接指定脈寬:
四、關(guān)鍵注意事項
共地原則:控制器、舵機、電源的 GND 必須連接在一起,否則 PWM 信號無法正常傳輸。
電源匹配:大扭矩舵機(如 MG996R)需外接 6V/12V 電源,避免直接使用控制器 5V 供電導(dǎo)致過載。
角度校準(zhǔn):不同舵機的脈寬 - 角度對應(yīng)關(guān)系可能存在差異,需通過實際測試微調(diào)(如某些舵機 180° 需 2.2ms 脈寬)。
機械保護:避免強行讓舵機轉(zhuǎn)動超過物理極限角度(如部分舵機最大角度為 120°),防止齒輪損壞。
審核編輯 黃宇
-
舵機
+關(guān)注
關(guān)注
17文章
376瀏覽量
43296 -
PWM信號
+關(guān)注
關(guān)注
3文章
107瀏覽量
21160
發(fā)布評論請先 登錄
PWM信號是如何控制舵機的?
評論