|
我用的是 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);
}
}
}
|
|