El Shield multifunción deja libres algunos pines de Arduino, en concreto el 5, 6, 9 y A5. Además, en los tres primeros podemos conectar directamente un micro servo (tipo SG 90), sólo debemos tener cuidado en colocar el cable naranja donde está serigrafiado el número del pin.
Para trabajar con el microservo vamos a utilizar una librería auxiliar, se trata de un conjunto de funciones que nos facilitan su programación. La librería se denomina Servo y va incluida en el IDE Arduino, aunque hay que declararla al inicio del programa y definir los servos que vayamos a usar. El programa adjunto mueve el micro servo de un extremo al otro a intervalos de 45º:
#include <Servo.h> //inluimos la librería
Servo servo1; //definimos nuestro servo como servo1,
//podemos darle el nombre que deseemos.
//Podemos declarar más, servo2, servo3,...
void setup()
{
servo1.attach(5); //conectamos servo1 en el pin 5
}
void loop()
{
servo1.write(0); //indicamos el ángulo en el debe posicionarse
delay(500);
servo1.write(45);
delay(500);
servo1.write(90);
delay(500);
servo1.write(135);
delay(500);
servo1.write(180);
delay(500);
}
Ahora vamos a mover el servo con los pulsadores S1 y S2, en un sentido y en el contrario.
/*
* servoPulsador.ino
* Al accionar los pulsadores S1 y S2 movemos el servo
* hacia la izquierda y la derecha respectivamente,
* a intervalos de 5 grados.
*/
#include <Servo.h> //incluimos la libreria Servo
Servo servo1; //definimos nuestro servo como servo1
int angulo = 90; //creamos la variable angulo
void setup()
{
pinMode(A1, INPUT);
pinMode(A2, INPUT);
servo1.attach(5); //servo1 en el pin 5
servo1.write(angulo); //servo1 a 90º
}
void loop()
{
if (digitalRead(A1) == LOW){ //si pulsamos A1
angulo = angulo + 5; //incrementamos angulo en 5º
if (angulo > 180){angulo=180;} //impedimos que sea > de 180º
}
if (digitalRead(A2) == LOW){ //si pulsamos A2
angulo = angulo - 5; //decrementamos angulo en 5º
if (angulo < 0){angulo=0;} //impedimos que sea < de 0º
}
servo1.write(angulo); //posicionamos servo1
delay(200);
}
Ejercicios propuestos: