Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 8434|回復: 8
打印 上一主題 下一主題

想請問一下arduino如何控伺服馬達轉速(急)新手

[複製鏈接]
1#
發表於 2016-10-24 22:48:03 | 顯示全部樓層
本帖最後由 croma 於 2016-10-24 22:49 編輯

伺服馬達要控制速度?
一般調整你輸出的 PWM 信號的脈衝比例就能調整速度
先確定一下你所使用的伺服馬達是哪一種呢?
看一下馬達的說明書吧 接受PWM信號轉動角度的舵機很多是不能控制速度的
2#
發表於 2016-10-25 20:26:05 | 顯示全部樓層
那就不難啦~ 這馬達應該是 1500 停止 1300 往前  1700 往後
宣告一個變數叫 speed 在處理 up down 函數的時候調整速度就行了,你可能要限制一下 upSpeed 和 downSpeed 的邊界值,另外在 狀態改變的時候 把另一個參數恢復初始值

int upSpeed = 1300;
int downSpeed = 1700;

int Up(){
  upSpeed -= 100;
  servoRight.writeMicroseconds(upSpeed );
  servoLeft.writeMicroseconds(upSpeed );
}
int Down(){
  downSpeed += 100;
  servoRight.writeMicroseconds(downSpeed );
  servoLeft.writeMicroseconds(downSpeed );

}
3#
發表於 2016-10-25 20:34:17 | 顯示全部樓層
回覆 3# nick123


    等等~ 這樣設計好像不太好~ 這樣只能一直往前往後加速~

    改成 只有一個 speed 參數應該會比較好

    按上 speed 參數 -100 按下 speed +100 直到邊界值
    左右應該 根據現在前進的方向 根據 speed 製造速度差才對
4#
發表於 2016-10-26 01:40:40 | 顯示全部樓層
回復 6# nick123

與邊界值沒什麼關係,邊界值是怕你一直按著把數值加到超過馬達反應的程度
從你的程式碼來看速度
1500 是 停止
1300 是 前進
1700 是 後退

你現在按 上下 就瞬間由 前進變後退 而不是速度的加減速,如果你要控制速度應該是 設定一個變數 初始值 為 1500
按上就減少這個變數 按下 就增加 這個變數
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-15 05:11 , Processed in 0.185456 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表