Ir al contenido

Servomotores: cómo controlarlos con Arduino y ESP32

De Makerspedia

Introducción

Los servomotores son motores con control de posición angular mediante una señal PWM. Son ampliamente usados en robótica, impresoras, brazos mecánicos y proyectos de control de movimiento.

Tipos

  • Servo estándar: Rango de 0–180°. El más común (SG90, MG996R).
  • Servo de rotación continua: Gira 360° con velocidad proporcional a la señal.
  • Servo digital: Respuesta más rápida y precisa que los analógicos.

Señal de control (PWM)

Los servos se controlan con una señal PWM de 50 Hz (período 20 ms):

  • Pulso 1 ms → 0°
  • Pulso 1,5 ms → 90°
  • Pulso 2 ms → 180°

Control con Arduino

#include <Servo.h>
Servo miServo;
miServo.attach(9);
miServo.write(90); // Ir a 90 grados

Control con ESP32

El ESP32 no tiene librería Servo nativa compatible pero usa el canal LEDC:

#include <ESP32Servo.h>
Servo miServo;
miServo.attach(18);
miServo.write(90);

Servos populares

Modelo Torque Peso Precio
SG90 1,8 kg/cm 9 g $2
MG996R 10 kg/cm 55 g $8
DS3225 25 kg/cm 60 g $15

Véase también