Arduino: control de servos

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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *