Robofun 機器人論壇

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

請教伺服馬達角度問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2016-10-27 18:11:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 max840719 於 2016-10-27 18:27 編輯

想請問一下要如何控制伺服馬達從0~90度後再從90回來0度? 我寫的程式他都沒有動作


但如果在setup那加上myservo.write(0); ,他會一直轉圈圈轉不停。
加上myservo.write(90);  就完全不會動。

#include <Servo.h>
Servo myservo;



char inData;
const byte speed = 100;  // 馬達的PWM輸出值


const byte ENA = 5;  // 馬達A的致能接腳
const byte ENB = 6;  // 馬達B的致能接腳
const byte IN1 = 13; // 馬達A的正反轉接腳
const byte IN2 = 12;  // 馬達B的正反轉接腳
const byte IN3 = 7;  // 馬達A的正反轉接腳
const byte IN4 = 11;  // 馬達B的正反轉接腳





void setup()
{
   Serial.begin(9600);
   pinMode(IN1, OUTPUT);  // 馬達控制板的接腳全都設定成「輸出」
   pinMode(IN2, OUTPUT);
   pinMode(IN3, OUTPUT);
   pinMode(IN4, OUTPUT);
   pinMode(ENA, OUTPUT);
   pinMode(ENB, OUTPUT);
   digitalWrite(ENA,HIGH);
   digitalWrite(ENB,HIGH);
   myservo.attach(9);   

}


void loop()
{
  if(Serial.available() > 0)
  {
  inData = Serial.read();

     if(inData=='e')      //發射
    {
      analogWrite(ENA, speed);  
      digitalWrite(IN1, LOW);  
      digitalWrite(IN2, HIGH);
      analogWrite(ENB, speed);  
      digitalWrite(IN3, HIGH);  
      digitalWrite(IN4, LOW);
      delay(1500);
      myservo.write(90);
      delay(1000);
      myservo.write(0);

    }
  }
}


請教各位大大了,我用的是MG995 這顆。
2#
發表於 2016-10-28 13:41:39 | 只看該作者
MG995 有兩種.
一種是"非連續旋轉", 可控制角度
另一種是"360 度連續旋轉", 可控制轉動速度
看來你手上的是"360 度連續旋轉"
測試方法是, 只要下
myservo.write(180);
如果轉的方向和 myservo.write(0);相反
而且越接近 90 度, 轉動速度會變慢
那就表示它是"360 度連續旋轉"的伺服馬達
3#
 樓主| 發表於 2016-10-30 23:58:45 | 只看該作者
MG995 有兩種.
一種是"非連續旋轉", 可控制角度
另一種是"360 度連續旋轉", 可控制轉動速度
看來你手上的 ...
超新手 發表於 2016-10-28 13:41


我用下面這樣:
  case'b':
           myservo.write(90);
           break;
    case'c':
           myservo.write(180);
           break;
    case'd':
           myservo.write(0);
           break; 

B不會動,C逆時針等速度轉,D順時針等速度轉,不會說轉到哪特別慢這樣。

我用的是Tower Pro的MG995
4#
發表於 2016-10-31 07:07:32 | 只看該作者
所以它是360度的伺服馬達沒錯
只能控制轉速
另外,你誤會我說的
值接近90是指
write(120) 比 write(180)轉的慢
write(60) 比 write(0)轉的慢
120 和 60 比 180和 0接近 90
5#
 樓主| 發表於 2016-10-31 13:24:44 | 只看該作者
所以它是360度的伺服馬達沒錯
只能控制轉速
另外,你誤會我說的
值接近90是指
write(120) 比 write(180 ...
超新手 發表於 2016-10-31 07:07


所以他這邊
   
  • 死區設定:4微秒
  • 插頭類型:JR、FUTABA通用
  • 轉動角度:最大180度
  • 舵機類型:模擬舵機
  • 工作電流:100mA
  • 使用電壓:3-7.2V
轉動角度最大180度不是只能轉180度喔?  
6#
發表於 2016-11-1 08:00:46 | 只看該作者
從字面上來看...
它是指"非連續旋轉"MG995的最大旋轉角度沒錯
7#
 樓主| 發表於 2016-11-1 09:48:58 | 只看該作者
從字面上來看...
它是指"非連續旋轉"MG995的最大旋轉角度沒錯
超新手 發表於 2016-11-1 08:00



  謝謝解惑~ 又去買了一顆非連續旋轉的了,店家也不知道有連續旋轉的...
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-4 01:34 , Processed in 0.161411 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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