Hello,
I am trying to control 6 servos in a robotic arm using arduino. I'm trying to trigger them using the Serial Monitor, but when I start the Arduino, the servos simply jitter a little and don't respond to any commands sent by Serial Monitor. Does anyone know why this is? My code is below:
#include <Servo.h>
Servo finger;
Servo finger2;
Servo fingerR;
Servo elbow;
Servo wrist;
Servo rotation;
int posfinger = 0;
int posfinger2 = 0;
int posfingerR = 180;
int poselbow = 0;
int poswrist = 75;
int posrotation = 20;
void setup() {
finger.attach(3);
finger2.attach(4);
fingerR.attach(10);
elbow.attach(5);
wrist.attach(8);
rotation.attach(9);
finger.write(posfinger);
finger2.write(posfinger2);
fingerR.write(posfingerR);
elbow.write(poselbow);
wrist.write(poswrist);
rotation.write(posrotation);
Serial.begin(19200);
}
void loop() {
if (Serial.available() > 0) {
int inByte = Serial.read();
if (inByte == 'q') {
poselbow = 170;
elbow.write(poselbow);
delay(2500);
poselbow = 0;
elbow.write(poselbow);
} else if (inByte == 'w') {
posfinger = 0;
posfinger2 = 0;
posfingerR = 180;
finger.write(posfinger);
finger2.write(posfinger2);
fingerR.write(posfingerR);
delay(1000);
posfinger = 180;
posfinger2 = 180;
posfingerR = 0;
finger.write(posfinger);
finger2.write(posfinger2);
fingerR.write(posfingerR);
delay(1000);
posfinger = 0;
posfinger2 = 0;
posfingerR = 180;
finger.write(posfinger);
finger2.write(posfinger2);
fingerR.write(posfingerR);
} else if (inByte == 'e') {
poswrist = 75;
wrist.write(poswrist);
delay(1000);
poswrist = 150;
wrist.write(poswrist);
delay(1000);
poswrist = 75;
wrist.write(poswrist);
} else if (inByte == 'r') {
posrotation = 20;
rotation.write(posrotation);
delay(1000);
posrotation = 180;
rotation.write(posrotation);
delay(1000);
posrotation = 20;
rotation.write(posrotation);
}
}
}