Saltar al contenido
Contenido de Arduino

Lección 1.8: Servomotor

Un servo no gira sin fin: va a un ángulo y se queda ahí, haciendo fuerza para mantenerlo. Es el actuador de las barreras, los brazos robóticos y los timones del aeromodelismo.

Material

Librerías

  • Servo — incluida con el IDE

Cómo funciona

Dentro hay un motor DC, una reductora, un potenciómetro unido al eje y un circuito de control. El circuito compara la posición del potenciómetro con la que le pides y mueve el motor hasta que coinciden.

La posición se indica con un pulso que se repite cada 20 ms (50 Hz): en torno a 1 ms es un extremo, 1,5 ms el centro y 2 ms el otro extremo. La librería Servo genera esos pulsos y te deja hablar en grados.

En el Uno, la librería Servo usa el temporizador 1, así que mientras haya un servo conectado analogWrite() deja de funcionar en los pines 9 y 10.

Datos técnicos

Recorrido
unos 180°
Par
1,8 kg·cm
Velocidad
0,1 s cada 60°
Alimentación
4,8–6 V

Conexiones

ComponenteSe conecta aNota
Servo, cable marrónGND
Servo, cable rojo5V
Servo, cable naranja (señal)Pin 9

Código

// Barre el servo de 0 a 180 grados y vuelve.
#include <Servo.h>

const int SERVO_PIN = 9;
Servo servo;

void setup() {
  servo.attach(SERVO_PIN);
}

void loop() {
  for (int angle = 0; angle <= 180; angle++) {
    servo.write(angle);
    delay(15); // tiempo para llegar a cada grado
  }

  for (int angle = 180; angle >= 0; angle--) {
    servo.write(angle);
    delay(15);
  }
}

Qué hace el código

  • Servo servo; crea el objeto y attach() lo asocia a un pin. En el Uno se pueden manejar hasta 12 servos.
  • write(angle) envía el ángulo en grados; la librería lo traduce a la anchura del pulso.
  • Cada delay(15) da tiempo al servo a alcanzar el grado siguiente: un barrido completo tarda unos 2,7 s.

Paso a paso

  1. Conecta el servo con tres cables según la tabla.
  2. Sube el código.
  3. Coloca uno de los brazos en el eje para ver mejor el movimiento.

Resultado

El servo gira despacio hasta un extremo, vuelve al otro y repite sin parar.

Si no funciona

  • Si el servo tiembla o la placa se reinicia, pide más corriente de la que da el USB: aliméntalo con una fuente aparte y une los GND.
  • Si zumba en los extremos, está haciendo tope: limita el barrido, por ejemplo de 10 a 170 grados.
  • Si no se mueve, revisa el orden de los cables: el naranja es la señal.