這款伺服馬達可控制角度範圍在 0 ~ 180 度,採取脈衝訊號控制,ROSA 有下列幾個指令可以控制伺服馬達角度旋轉。
SERVO pin,degree[,%[,ms[,hold]]]
這是對伺服馬達角度控制的指令,pin 是 Arduino 的腳位號碼,degree 是設定的角度,% 為給伺服馬達的電力,ms 影響馬達轉定位後是否立即執行後面的指令,hold 設定馬達轉定位後是否持續通電。
下表是 ROSA328 的參數值範圍
pin | 2 ~ 19 | Arduino 的腳位號碼 |
degree | 0 1 ~ 179 180 181 ~ 254 255 | 最小的角度 特定的角度 最大的角度 角度不變更 歸位的角度 = 90 |
% | 0 1 ~ 100 | 伺服馬達停止運轉 提供給伺服馬達的電力 |
ms | 0 1 ~ 255 | 轉定位後立即執行後續指令 轉動 N x 100ms 後執行後續指令 |
hold | 0 1 | 伺服馬達轉定位後,停止通電,憑馬達齒輪力量維持 伺服馬達轉定位後,持續通電,可維持馬達的力量 |
例如,
SERVO 2,0,100,0,0
設定 PIN 2 最小角度,以 100% 電力運轉,轉定位後立即執行後續指令,並停止繼續通電
設定 PIN 2 最小角度,以 100% 電力運轉,轉定位後立即執行後續指令,並停止繼續通電
SERVO 3,90,20,10
設定 PIN 3 角度 90,以 20% 電力運轉,馬達運轉 1000 ms 後再執行後續指令
SERVO 4,180,50
設定 PIN 4 最大角度,以 50% 電力運轉
SERVO 5,255
設定 PIN 5 角度歸位,初始預設為 90 度
設定 PIN 5 角度歸位,初始預設為 90 度
SERVO? pin
查詢伺服馬達的參數設定,回應角度、電力、ms 時間 (這時間會倒數至零)、持續通電狀態
====== 因記憶體 RAM 不足,自 00.20 版本後取消 ANGLE 指令 ============
ANGLE pin,mid[,max[,min[,rev]]]
設定伺服馬達的歸位角度(mid)、最大角度(max)、最小角度(min)及是否反轉(rev)
例如,
ANGLE 2,90,180,0,0
設定 pin 2 歸位角度 90 度,最大角度 180 度,最小角度 0 度,沒有角度反轉
設定 pin 2 歸位角度 90 度,最大角度 180 度,最小角度 0 度,沒有角度反轉
ANGLE 3,60,170,10
設定 pin 3 歸位角度 60 度,最大角度 170 度,最小角度 10 度
設定 pin 4 歸位角度 50 度,最大角度 120 度
ANGLE 5,90
設定 pin 5 歸位角度 90 度
查詢伺服馬達的角度設定
===============================================================
SPEED pin,%,...
設定伺服馬達轉動的電力,% 範圍 0 ~ 100,經驗值參考,20% 以下,當有負載時常顯得無力驅動,例如
SPEED 3,20,100 pin 3 以 20% 電力驅動伺服馬達,pin 4 以 100% 電力驅動
SPEED? pin
查詢伺服馬達轉動的電力
設定伺服馬達到達定位後,是否持續通電,value 為 1 時表示持續通電,數值為零時則否,有持續通電的伺服馬達,即使被外力扳動馬達角度,也可以復位。
例如,
HOLD 2,0,1 pin 2 不通電,pin 3 持續通電
HOLD? pin
例如,
HOLD 2,0,1 pin 2 不通電,pin 3 持續通電
HOLD? pin
查詢伺服馬達到達定位後,是否持續通電
REVER pin,value,...
REVER pin,value,...
設定伺服馬達是否角度反向,value 為 1 時表示角度反向,也就是實際角度設定 = 180 - 設定角度,而 value 為 0 時,設定角度不反向。角度反轉可方便方向設定,一般左右對稱的伺服馬達,只要改變這項設定即可使用相同角度數值。
例如,
REVER 2,0,1 pin 2 角度正常,pin 3 角度反向
例如,
REVER 2,0,1 pin 2 角度正常,pin 3 角度反向
REVER? pin
查詢伺服馬達的角度反向設定狀態
沒有留言:
張貼留言