Robofun 機器人論壇

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

伺服器馬達控制問題?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-10 22:20:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大您好:
      先前感謝大大們提供一個訊息,讓我已解決控制伺服器馬達,可以正轉反轉,加速減速。小弟目前是利用 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 旋轉指定的位置


}

2#
發表於 2012-8-10 23:54:11 | 只看該作者
360度的要這麼慢比較麻煩,沒做過
但我會試試看

myservo.write(1500);
// 設定 Servo 旋轉角度

myservo.writeMicroseconds(1500);  不動
delay(100);拖點時間
myservo.writeMicroseconds(1510);   動一點點
delay(100);繼續拖時間

然後改delay裡面的數值去撐
應該可以讓他變很慢
3#
 樓主| 發表於 2012-8-11 01:08:55 | 只看該作者
大大:有點看不懂您的意思
4#
發表於 2012-8-11 14:40:01 | 只看該作者
我是說你可以先試試我打那四行
會變很慢
剛剛試過, 可以用幾秒一度的速度讓他轉
但我delay調到很大
而且這樣很不準
有時候3秒1度, 有時候7、8秒才一度
因為改變的數值太小, 普通的360SERVO 沒這麼精準的電位器
無法正確接受指令
也許, 要轉這麼慢可能不能用SERVO
用減速DC就很容易了
nichal 該用戶已被刪除
5#
發表於 2012-8-11 15:34:48 | 只看該作者
試試看把馬達的供應電壓調低
這樣可能會快一點
6#
 樓主| 發表於 2012-8-11 22:57:36 | 只看該作者
感謝大大指點,真的變慢很多,我是直接在設定伺服器角度這行下加入你提供的那四行指令,不過它的動作變成一直右轉速度變很慢,但我轉我的可變電阻變成沒辦法左右轉,一直右轉??
7#
發表於 2012-8-12 00:59:33 | 只看該作者
這只是程式流程的問題囉
就是幾行IF 和我那個程式結合
可變電阻讀到的數值應是0~1023
就以512當中點,變小就往左(給1490),變大往右(給1510)
試試看吧
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-31 20:00 , Processed in 0.166430 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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