En el siguiente programa mostramos un ejemplo de como mover un sistema de brazo y mano que tienen 3 servomotores.

#include <servo.h>
Servo servo_1; // Definimos el nombre de los servo que vamos a usar
Servo servo_2;
Servo servo_3;
int pos_servo_1 = 0; // definimos lasvariables de posición
int pos_servo_2 = 0;
int pos_servo_3 = 0;
int tiempo = 20; // definimos el tiempo entre pasos del servo (velocidad)
int pasos = 2;
void setup() {
servo_1.attach(7); // conectamos el servo_1 al pin 7
servo_2.attach(8); // conectamos el servo_2 al pin 8
servo_3.attach(9); // conectamos el servo_3 al pin 9
}
void loop()
{
servo_1.write(80); // ajustamos la posición inicial de cada servo
servo_2.write(90);
servo_3.write(90);
delay(500);
// Bajar brazo 90-10
for (pos_servo_2 = 90; pos_servo_2 >= 10 ; pos_servo_2 -= pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Cerrar mano 90-15
for (pos_servo_3 = 90; pos_servo_3 >= 15 ; pos_servo_3 -= pasos) {
servo_3.write(pos_servo_3);
delay(tiempo);//
}
// Subir brazo 10-90
for (pos_servo_2 = 10; pos_servo_2 <= 90; pos_servo_2 += pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Girar izda 79-180
for (pos_servo_1 = 79; pos_servo_1 <= 180; pos_servo_1 += pasos) {
servo_1.write(pos_servo_1);
delay(tiempo);//
}
// Bajar brazo 90-25
for (pos_servo_2 = 90; pos_servo_2 >= 25 ; pos_servo_2 -= pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Abrir mano
for (pos_servo_3 = 15; pos_servo_3 <= 90; pos_servo_3 += pasos) {
servo_3.write(pos_servo_3);
delay(tiempo);
}
// Subir brazo 25-90
for (pos_servo_2 = 205; pos_servo_2 <= 90; pos_servo_2 += pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Girar dcha
for (pos_servo_1 = 180; pos_servo_1 >= 80 ; pos_servo_1 -= pasos) {
servo_1.write(pos_servo_1);
delay(tiempo);
}
// Bajar brazo 90-15
for (pos_servo_2 = 90; pos_servo_2 >= 15 ; pos_servo_2 -= pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Cerrar mano 90-15
for (pos_servo_3 = 90; pos_servo_3 >= 15 ; pos_servo_3 -= pasos) {
servo_3.write(pos_servo_3);
delay(tiempo);//
}
// Subir brazo 15-90
for (pos_servo_2 = 15; pos_servo_2 <= 90; pos_servo_2 += pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Girar izda 79-180
for (pos_servo_1 = 79; pos_servo_1 <= 180; pos_servo_1 += pasos) {
servo_1.write(pos_servo_1);
delay(tiempo);//
}
// Bajar brazo 90-25
for (pos_servo_2 = 90; pos_servo_2 >= 25 ; pos_servo_2 -= pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Abrir mano
for (pos_servo_3 = 15; pos_servo_3 <= 90; pos_servo_3 += pasos) {
servo_3.write(pos_servo_3);
delay(tiempo);
}
// Subir brazo 10-90
for (pos_servo_2 = 25; pos_servo_2 <= 90; pos_servo_2 += pasos) {
servo_2.write(pos_servo_2);
delay(tiempo);//
}
// Girar dcha
for (pos_servo_1 = 180; pos_servo_1 >= 79 ; pos_servo_1 -= pasos) {
servo_1.write(pos_servo_1);
delay(tiempo);
}
delay(500);
