Robofun 機器人論壇
標題: 伺服器馬達控制問題? [打印本頁]
作者: suenbrad 時間: 2012-8-10 22:20
標題: 伺服器馬達控制問題?
各位大大您好:
先前感謝大大們提供一個訊息,讓我已解決控制伺服器馬達,可以正轉反轉,加速減速。小弟目前是利用 Arduino裡的範例,程式如下,小弟目前還有一個問題,有沒有辦法在這個範例程式裡作修改,讓轉速能不能再慢一些,大概五、六秒轉一點點角度。我是用360度的伺服器馬達。麻煩大大前輩們能幫幫忙!謝謝!!
// 使用可變電阻控制 Servo 的旋轉角度
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>;
// 引用 Servo Library
#include <Servo.h>
// 建立一個 Servo 物件
Servo myservo;
// 可變電阻接在 Analog pin 0
int potpin = 0;
// 儲存旋轉角度的變數
int val;
void setup()
{
myservo.attach(9);
// Servo 接在 pin 9
}
void loop()
{
val = analogRead(potpin);
// 讀取可變電阻(數值介於 0 到 1023)
val = map(val, 0, 1023, 0, 179);
// 把 0 - 1023 的數值按比例縮放為 0 - 0 的數值
myservo.write(val);
// 設定 Servo 旋轉角度
delay(15);
// 等待 Servo 旋轉指定的位置
}
作者: mzw2008 時間: 2012-8-10 23:54
360度的要這麼慢比較麻煩,沒做過
但我會試試看
把
myservo.write(1500);
// 設定 Servo 旋轉角度
改
myservo.writeMicroseconds(1500); 不動
delay(100);拖點時間
myservo.writeMicroseconds(1510); 動一點點
delay(100);繼續拖時間
然後改delay裡面的數值去撐
應該可以讓他變很慢
作者: suenbrad 時間: 2012-8-11 01:08
大大:有點看不懂您的意思
作者: mzw2008 時間: 2012-8-11 14:40
我是說你可以先試試我打那四行
會變很慢
剛剛試過, 可以用幾秒一度的速度讓他轉
但我delay調到很大
而且這樣很不準
有時候3秒1度, 有時候7、8秒才一度
因為改變的數值太小, 普通的360SERVO 沒這麼精準的電位器
無法正確接受指令
也許, 要轉這麼慢可能不能用SERVO
用減速DC就很容易了
作者: nichal 時間: 2012-8-11 15:34
試試看把馬達的供應電壓調低
這樣可能會快一點
作者: suenbrad 時間: 2012-8-11 22:57
感謝大大指點,真的變慢很多,我是直接在設定伺服器角度這行下加入你提供的那四行指令,不過它的動作變成一直右轉速度變很慢,但我轉我的可變電阻變成沒辦法左右轉,一直右轉??
作者: mzw2008 時間: 2012-8-12 00:59
這只是程式流程的問題囉
就是幾行IF 和我那個程式結合
可變電阻讀到的數值應是0~1023
就以512當中點,變小就往左(給1490),變大往右(給1510)
試試看吧
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) |
Powered by Discuz! X3.2 |