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);