En esta lección, exploraremos cómo utilizar Arduino para controlar servomotores y lograr movimientos precisos y controlados. Los servomotores son dispositivos electromecánicos que permiten controlar el ángulo de rotación con gran precisión, lo que los hace ideales para aplicaciones que requieren movimientos específicos, como robótica, modelismo y automatización.
Nos centraremos en el uso del pin 3 de Arduino para controlar un servomotor, aprendiendo los conceptos básicos y prácticos para llevar a cabo esta tarea de manera efectiva Para esta primera parte, vamos a utilizar la librería Servo.h que nos facilita el control de servomotores con Arduino, ahora aprendamos a mover un servomotor con esta librería.
Pasos a Seguir
- Abrimos Arduino IDE, puedes descargar el programador recomendado en el siguiente enlace, Arduino IDE 1.6.

- Primero incluiremos la librería Servo.h que se encarga de facilitarnos el manejo de servomotores con nuestro arduino.
//Iniciamos la libreria Servo.h #include
- Procedemos a inicializar un servomotor con el comando Servo y le daremos un nombre.
//Declaramos el servomotor que utilizaremos Servo ServomotorMotor1;
- Inicializaremos una variable de tipo Entero (Int) donde almacenaremos el valor de Angulo del servomotor y procedemos a darle un valor inicial.
/*Inicializamos variable de tipo entero *asignamos un angulo inicial */ int AnguloServomotor=90;
- Ahora pasaremos al apartado de configuración llamado void setup() en este apartado declararemos el pin de ataque del tipo PWM de nuestro servomotor.
void setup(){ //Declaracion de pin de ataque de nuestro servomotor a arduino ServomotorMotor1.attach(3); //Iiniciamos el puerto serial con 9600 baudios de comunicacion Serial.begin(9600); } - Ahora en el apartado void loop() procederemos a a mover nuestro servomotor en intervalos pre-establecidos para ello utilizaremos la función «articulación».write(«angulo»); quedando del siguiente modo.
void loop(){ //escribimos un angulo de rotacion AnguloServomotor=10; //escribimos ese angulo en la funcion .write de la libreria servo.h ServomotorMotor1.write(AnguloServomotor); //imprimimos ese angulo en nuestro monitor serial Serial.println(AnguloServomotor); //damos una espera de 500 milisegundos delay(500); //escribimos un nuevo angulo de rotacion AnguloServomotor=150; //escribimos ese angulo en la funcion .write de la libreria servo.h ServomotorMotor1.write(AnguloServomotor); //imprimimos ese angulo en nuestro monitor serial Serial.println(AnguloServomotor); //damos una nueva espera de 500 milisegundos delay(500); } - El código final quedaría de la siguiente forma.
//Iniciamos la libreria Servo.h #include
//Declaramos el servomotor que utilizaremos Servo ServomotorMotor1; /*Inicializamos variable de tipo entero *asignamos un angulo inicial */ int AnguloServomotor=90; void setup(){ //Declaracion de pin de ataque de nuestro servomotor a arduino ServomotorMotor1.attach(3); //Iiniciamos el puerto serial con 9600 baudios de comunicacion Serial.begin(9600); } void loop(){ //escribimos un angulo de rotacion AnguloServomotor=10; //escribimos ese angulo en la funcion .write de la libreria servo.h ServomotorMotor1.write(AnguloServomotor); //imprimimos ese angulo en nuestro monitor serial Serial.println(AnguloServomotor); //damos una espera de 500 milisegundos delay(500); //escribimos un nuevo angulo de rotacion AnguloServomotor=150; //escribimos ese angulo en la funcion .write de la libreria servo.h ServomotorMotor1.write(AnguloServomotor); //imprimimos ese angulo en nuestro monitor serial Serial.println(AnguloServomotor); //damos una nueva espera de 500 milisegundos delay(500); } - Como penúltimo paso realizaremos la siguiente conexión electrónica en nuestra Protoboard – Arduino – servomotor.

- Para finalizar cargaremos nuestro código a Arduino y observaremos como nuestro servomotor se mueve en los ángulos predefinidos.
- Prueba en cambiar los ángulos de rotación y los tiempos de espera, como se observa en el siguiente ejemplo:
#include
Servo AnguloServomotor; // Crea un objeto de tipo Servo void setup() { AnguloServomotor.attach(3); // Asigna el pin 3 a nuestro servo } void loop() { AnguloServomotor.write(0); // Establece el ángulo de rotación a 0 grados delay(1000); // Espera 1 segundo AnguloServomotor.write(90); // Establece el ángulo de rotación a 90 grados delay(2000); // Espera 2 segundo AnguloServomotor.write(180); // Establece el ángulo de rotación a 180 grados delay(500); // Espera 0.5 segundo } En este ejemplo, utilizamos la función write() del objeto «AnguloServomotor» para establecer diferentes ángulos de rotación (0, 90 y 180 grados) y la función delay() para esperar 1 segundo entre cada cambio de ángulo. Puedes experimentar modificando los ángulos de rotación y los tiempos de espera para adaptar el movimiento del servomotor según tus necesidades específicas.