| 
 | 
 
我用的是 3顆 MG995 3顆MG90S 組成的機械手臂 
 
但每次控制其他顆馬達的時候 
 
就有一顆MG90S會劇烈的轉動 
 
不知道是甚麼問題 
 
下面是我的程式 請高手幫我解決此問題!!感謝 
 
 
#include <SoftwareSerial.h> // TX RX software library for bluetooth 
 
#include <Servo.h> // servo library  
Servo myservo1, myservo2, myservo3, myservo4, myservo5, myservo6; // servo name 
 
int bluetoothTx = 4; // bluetooth tx to 4 pin 
int bluetoothRx = 7; // bluetooth rx to 7 pin 
 
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); 
 
void setup() 
{ 
  myservo1.attach(3); // attach servo signal wire to pin 9 
  myservo2.attach(5); 
  myservo3.attach(6); 
  myservo4.attach(A0); 
  myservo5.attach(10); 
  myservo6.attach(11); 
  //Setup usb serial connection to computer 
  myservo1.write(90); 
  myservo2.write(22.5); 
  myservo3.write(180); 
  myservo4.write(90); 
  myservo5.write(90); 
  myservo6.write(45); 
  Serial.begin(9600); 
 
  //Setup Bluetooth serial connection to android 
  bluetooth.begin(9600); 
} 
 
void loop() 
{ 
  //Read from bluetooth and write to usb serial 
  if(bluetooth.available()>= 2 ) 
  { 
    unsigned int servopos = bluetooth.read(); 
    unsigned int servopos1 = bluetooth.read(); 
    unsigned int realservo = (servopos1 *256) + servopos; 
    Serial.println(realservo); 
 
  if (realservo >= 1000 && realservo <1180) { 
      int servo1 = realservo; 
      servo1 = map(servo1, 1000, 1180, 0, 180); 
      myservo1.write(servo1); 
      Serial.println("Servo 1 ON"); 
      delay(10); 
    } 
  if (realservo >= 2000 && realservo <2180) { 
      int servo2 = realservo; 
      servo2 = map(servo2, 2000, 2180, 0, 180); 
      myservo2.write(servo2); 
      Serial.println("Servo 2 ON"); 
      delay(10); 
    } 
  if (realservo >= 3000 && realservo <3180) { 
      int servo3 = realservo; 
      servo3 = map(servo3, 3000, 3180, 90, 180); 
      myservo3.write(servo3); 
      Serial.println("Servo 3 ON"); 
      delay(10); 
    } 
  if (realservo >= 4000 && realservo <4180) { 
      int servo4 = realservo; 
      servo4 = map(servo4, 4000, 4180, 45, 180); 
      myservo4.write(servo4); 
      Serial.println("Servo 4 ON"); 
      delay(10); 
    } 
  if (realservo >= 5000 && realservo <5180) { 
      int servo5 = realservo; 
      servo5 = map(servo5, 5000, 5180, 45, 135); 
      myservo5.write(servo5); 
      Serial.println("Servo 5 ON"); 
      delay(10); 
    } 
  if (realservo >= 6000 && realservo <6180) { 
      int servo6 = realservo; 
      servo6 = map(servo6, 6000, 6180, 45, 0 ); 
      myservo6.write(servo6); 
      Serial.println("Servo 6 ON"); 
      delay(10); 
    } 
  } 
} 
 |   
 
 
 
 |