Servomotores: cómo controlarlos con Arduino y ESP32
Apariencia
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 |