Arduino: control de servos
El control de servos desde arduino es un elemento que viene incluido en las librerías estandar del ide de desarrollo de arduino, por lo que resulta muy fácil su manejo.
Los servos más comunes utilizados con arduino se pueden mover entre 0 y 180 grados.
En este sencillo ejemplo se utilizan dos servos, moviéndolos en sentido contrario uno del otro haciendo el movimiento completo de 180 grados.
Para mover los dos servos correctamente es necesario conectar la placa de arduino a una fuente de alimetación, ya que la alimentación que le llega si se conecta únicamente desde el ordenador por usb puede ser insuficiente.
#include <Servo.h> Servo servo1; // Objeto para el primer servo Servo servo2; // Objeto para el segundo servo int pos1 = 0; // Variable con la posicion del primer servo int pos2 = 180; // variable con la posicion del segundo servo void setup() { servo1.attach(8); // Conecta el objeto del primer servo al pin 8 servo2.attach(9); // Conecta el objeto del segundo servo al pin 9 servo1.write(pos1); // Coloca un servo en la posicion opuesta al otro servo2.write(pos2); } void loop() { for (pos1 = 0; pos1 <= 180; pos1 += 1) { // Aumenta la posicion en grados desde 0 a 180 servo1.write(pos1); // Coloca el primer servo en la posicion actual servo2.write(180 - pos1); // Coloca el segundo servo en la posicion opuesta delay(15); // Detiene el avance 15ms para dar tiempo al servo a moverse } for (pos1 = 180; pos1 >= 0; pos1 -= 1) { // Disminuye la posicion en grados de 180 a 0 servo1.write(pos1); // Coloca el primer servo en la posicion actual servo2.write(180 - pos1); // Coloca el segundo servo en la posicion opuesta delay(15); // Detiene el avance 15ms para dar tiempo al servo a moverse } }
Este es el resultado de los dos servos moviéndose 180 grados en direcciones opuestas.