Saltar la navegación

Programa

Arduino incluye una librería con funciones para mover de una manera sencilla un servo, lo primero es introducir un include con la librería al principio, luego creamos el objeto (que será el nombre que usaremos en todo el programa para cada servo que queramos controlar) .

Por último, asociamos el servo al pin al que lo hemos conectado (7).

Una vez declarado, para usarlo, dentro de loop simplemente usamos la función servo.write(posicion)

Moverá el servo los grados que le indiquemos mediante la variable entera: posicion.

A continuación verás un sencillo ejemplo que coloca el servo totalmente a la izquierda, en el centro y a la derecha de su recorrido, dejamos un pequeño delay , para permitir que el servo alcance la posición antes de darle la siguiente orden:

#include <Servo.h> 
 
Servo myservo;        // crea un objeto tipo servo para controlar el servo 
int pos = 0;          // variable para almacenar la posición del servo
 
void setup(){ 
  myservo.attach(7);  // En EduBasica el servo se conecta al pin 7 
}

void loop() 
{ 
  pos=0;	      //A la derecha
  myservo.write(pos); //damos la orden con los grados
  delay(50);	      // esperamos que el servo llegue a la posición
  pos=90;	      //Centrado
  myservo.write(pos); //damos la orden con los grados
  delay(50);	
  pos=180;	      //A la izquierda
  myservo.write(pos); //damos la orden con los grados
  delay(50);	
} 

Si queremos mejorar un poco el código anterior, podemos utilizar un for, que nos permite realizar una secuencia de acciones varias veces.

Utilizamos una variable como contador, en este caso es la misma posición (pos) , que se irá incrementando en 90 grados en cada iteración del bucle. En nuestro ejemplo se ejecuta 3 veces:

for (pos=0; pos<=180; pos+=90) { 
  myservo.write(pos); //orden con los grados en cada iteración