Cómo funciona un servomotor con Arduino

Clase 34 de 38Curso Fundamentos de Desarrollo de Hardware con Arduino

Resumen

Controlar la posición con precisión es sencillo con un servomotor y Arduino. Aquí verás cómo alimentarlo, conectarlo y moverlo entre 0° y 180° usando la librería Servo. Además, se explican los pulsos de control y un ejemplo práctico con for y delay.

¿Qué es un servomotor y cómo se alimenta en Arduino?

Un servomotor mantiene posiciones exactas en un rango de 0° a 180°. Es ideal para proyectos como un hexápodo o mecanismos que manipulan objetos con movimiento rotativo.

  • Rango típico de alimentación: 6–12 V.
  • Caso mostrado: servomotor pequeño de 6 V alimentado desde 5 V de Arduino porque consume menos de 1 A sin carga.
  • Para proyectos exigentes (como un hexápodo): batería externa recomendada.
  • Consejo de seguridad: cuidado con las conexiones para no dañar componentes.

¿Para qué proyectos es útil un servomotor?

  • Hexápodos con múltiples articulaciones precisas.
  • Mecanismos que requieran mantener un ángulo fijo.
  • Dispositivos que necesiten movimientos rotativos controlados.

¿Cómo se alimenta sin riesgos?

  • Identifica el voltaje del modelo: si es de 6 V, no lo alimentes desde una fuente fija de 12 V.
  • Para pruebas sin carga: 5 V de Arduino pueden ser suficientes.
  • Con cargas o varios servos: usa batería externa y cableado correcto.

¿Cómo se controla el ángulo con pulsos?

El ángulo se define por pulsos. El modelo descrito responde al rango de 1.5 ms a 2.5 ms.

  • Para 90°: pulso de 2 ms.
  • Rango operativo del ejemplo: 1.5–2.5 ms para 0–180°.
  • Frecuencia de refresco típica: cada 20 ms (puede variar según fabricante).
  • Con Arduino, la librería Servo gestiona estos detalles, simplificando el control.

¿Qué hace la librería Servo de Arduino?

  • Abstrae el control por pulsos con servo.write(ángulo).
  • Actualiza el pulso periódicamente para mantener la posición.
  • Permite adjuntar el servo a un pin con servo.attach(pin).

¿Qué datos y keywords debes recordar?

  • 0–180°, 1.5–2.5 ms, 2 ms para 90°, refresco ~20 ms.
  • 5 V Arduino para pruebas sin carga; batería externa para varios servos.
  • Funciones clave: attach, write, delay.

¿Cómo cablear y programar con la librería Servo?

Se necesitan tres conexiones: tierra, voltaje y señal. Luego, un sketch mínimo con un barrido de ida y vuelta.

¿Cómo se conecta correctamente el servo?

  • Cable café: tierra.
  • Cable rojo: voltaje (5 V en la prueba).
  • Cable amarillo: señal al pin elegido (ejemplo: 9).
  • Usa cables macho–macho y respeta colores para evitar errores.

¿Qué estructura de código mueve de 0° a 180° y regresa?

#include <Servo.h>

const int servoPin = 9;    // Pin del servo
Servo servo1;              // Objeto servo
int angle = 0;             // Ángulo actual

void setup() {
  servo1.attach(servoPin); // Unir servo al pin 9
}

void loop() {
  // Barrido ascendente: 0° → 180°
  for (angle = 0; angle < 180; angle++) {
    servo1.write(angle);
    delay(30); // Paso visible, ajustable
  }
  // Barrido descendente: 180° → 0°
  for (angle = 180; angle > 0; angle--) {
    servo1.write(angle);
    delay(30);
  }
}
  • servo1.write(angle): envía el ángulo objetivo.
  • delay(30): hace visible el movimiento. Se puede reducir para mayor velocidad.
  • Práctica útil: coloca un trozo de cinta en el eje para ver mejor el giro.
  • Buen hábito: verifica el sketch, corrige llaves faltantes y vuelve a subirlo si hay errores.

¿Tienes dudas, quieres comparar modelos de servos o necesitas ayuda con tu proyecto? Déjalas en comentarios y con gusto te apoyo.