Calculadora de ángulo de servo por pulso PWM🌎
Actualizado junio de 2026Para convertir pulso PWM a ángulo de servo: Ángulo = (Pulso_ms − 1,0) × Rango°. Con el estándar RC (1,0–2,0 ms a 50 Hz): 1,0 ms = 0°, 1,5 ms = 90° (centro), 2,0 ms = 180°. Para un servo de 270°, un pulso de 1,75 ms produce (1,75 − 1,0) × 270 = 202,5°.
Un servo motor de RC o robótica recibe una señal PWM (Modulación por Ancho de Pulso) donde el ancho del pulso, medido en milisegundos, determina directamente el ángulo de posición del eje. El estándar universal define que un pulso de 1,0 ms corresponde a 0°, uno de 1,5 ms al centro (90° en un servo de 180°), y uno de 2,0 ms al máximo (180°). Esta calculadora convierte cualquier ancho de pulso en el ángulo resultante según el rango configurado del servo (90°, 180° o 270°), usando la interpolación lineal entre los extremos del rango.
Cuándo usar esta calculadora
- Calibrar el punto central (1,5 ms) de un servo en un brazo robótico antes de montar la estructura mecánica, para evitar tensiones en engranajes.
- Verificar que la señal PWM generada por un microcontrolador Arduino o ESP32 produce el ángulo correcto en un servo de dirección para un vehículo RC.
- Determinar el pulso exacto necesario para posicionar un servo de cámara gimbal en un ángulo específico de paneo o tilt durante el diseño del firmware.
- Diagnosticar por qué un servo de 270° no llega a su posición máxima, comparando el pulso generado contra el rango teórico esperado para ese modelo.
- Convertir valores de un mapa de pulsos documentados en un datasheet (en µs) a ángulos para programar una secuencia de movimientos en un robot educativo.
Ejemplo práctico
- Pulso = 1,5 ms, rango = 180°
- Ángulo = (1,5 − 1,0) × 180 = 0,5 × 180 = 90°
- % del rango = (1,5 − 1,0) / 1,0 × 100 = 50%
- Resultado: el servo queda exactamente en el centro
Cómo funciona
3 min de lecturaCómo se calcula el ángulo de servo desde el pulso PWM
La relación entre ancho de pulso PWM y ángulo de un servo es lineal. El rango de pulso estándar va de 1,0 ms (mínimo, 0°) a 2,0 ms (máximo), con un span total de 1,0 ms. La fórmula es:
Ángulo (°) = (Pulso_ms − 1,0) × Rango_° / 1,0
// Equivalente con microsegundos (µs):
Ángulo (°) = ((Pulso_µs − 1000) / 1000) × Rango_°
// Inversa — de ángulo a pulso:
Pulso_ms = 1,0 + (Ángulo / Rango_°) × 1,0Porcentaje del rango:
% = (Pulso_ms − 1,0) / 1,0 × 100
// Ejemplo: 1,5 ms → (1,5 − 1,0) / 1,0 × 100 = 50%La señal PWM completa tiene un período de 20 ms (50 Hz), pero solo el ancho del pulso activo (1–2 ms) determina la posición. El resto del período permanece en bajo.
---
Tabla de referencia: pulso PWM a ángulo
Valores estándar para los tres rangos de servo más comunes (endpoints 1,0–2,0 ms):
| Pulso (ms) | µs | Servo 90° | Servo 180° | Servo 270° | Ciclo de trabajo |
|---|---|---|---|---|---|
| 1,000 | 1000 | 0° | 0° | 0° | 5,00 % |
| 1,125 | 1125 | 11,25° | 22,5° | 33,75° | 5,63 % |
| 1,250 | 1250 | 22,5° | 45° | 67,5° | 6,25 % |
| 1,375 | 1375 | 33,75° | 67,5° | 101,25° | 6,88 % |
| 1,500 | 1500 | 45° | 90° | 135° | 7,50 % |
| 1,625 | 1625 | 56,25° | 112,5° | 168,75° | 8,13 % |
| 1,750 | 1750 | 67,5° | 135° | 202,5° | 8,75 % |
| 1,875 | 1875 | 78,75° | 157,5° | 236,25° | 9,38 % |
| 2,000 | 2000 | 90° | 180° | 270° | 10,00 % |
> Nota: Muchos servos de bajo costo y servos digitales premium (Hitec, Savöx) aceptan el rango extendido 0,5–2,5 ms. Forzarlos fuera del rango nominal daña los engranajes.
---
Casos típicos
Caso 1 – Servo de timón en modelo RC (180°)
Un receptor RC genera un pulso de 1,3 ms para girar el timón a la izquierda.Ángulo = (1,3 − 1,0) × 180 = 0,3 × 180 = 54°
El timón se desvía 54° desde el mínimo; respecto al centro mecánico (90°), la deflexión es 36° hacia la izquierda.
Caso 2 – Brazo robótico con servo de 270°
El firmware envía 1,667 ms para posicionar una articulación.Ángulo = (1,667 − 1,0) × 270 = 0,667 × 270 ≈ 180°
La articulación queda en el punto medio del rango de 270°, posición neutral vertical.
Caso 3 – Servo de 90° como actuador de válvula al 75%
Sistema de riego automatizado requiere abrir la válvula al 75%. El pulso necesario:Pulso = 1,0 + (75/100) × 1,0 = 1,75 ms → 67,5°
Se programa el timer del microcontrolador para generar exactamente 1750 µs.
---
Errores comunes al programar servos
1. Confundir período PWM con ancho de pulso. El período completo es 20 ms (50 Hz), pero la posición depende solo de los 1–2 ms de pulso activo.
2. Asumir que todos los servos usan exactamente 1,0–2,0 ms. Servos digitales de gama alta a veces usan 0,8–2,2 ms. Verificar siempre el datasheet.
3. No calibrar el punto cero mecánico. El cero mecánico del servo puede estar desfasado ±5° por tolerancias de fabricación.
4. Usar la fórmula de 180° para un servo de 270° sin ajustar el rango. El error resultante puede ser de hasta 90° que puede trabar o romper la mecánica.
5. Truncación entera en el microcontrolador. int pulse = (angle / 180) * 1000 + 1000 con angle = 45 produce (45/180) = 0 en aritmética entera → 0° en lugar de 45°. Siempre usar float.
---
Calculadoras relacionadas
Preguntas frecuentes
¿Cuál es la fórmula para convertir pulso PWM a ángulo de servo?
La fórmula estándar es: Ángulo (°) = (Pulso_ms − 1,0) × Rango°. Con el estándar RC (1,0–2,0 ms): 1,0 ms = 0°, 1,5 ms = 90° (centro en un servo de 180°), 2,0 ms = 180°. En microsegundos: Ángulo = ((Pulso_µs − 1000) / 1000) × Rango°. Para la inversa (de ángulo a pulso): Pulso_ms = 1,0 + (Ángulo / Rango°).
¿Cuál es la frecuencia estándar de la señal PWM para servos?
La frecuencia estándar para servos analógicos es 50 Hz, lo que equivale a un período de 20 ms. Los servos digitales modernos pueden operar a 100–333 Hz, reduciendo la latencia de respuesta, pero la relación pulso-ángulo (1–2 ms) se mantiene igual en la mayoría de los casos. Usar una frecuencia mayor en un servo analógico puede sobrecalentar su etapa de control.
¿Qué pasa si envío un pulso fuera del rango 1,0–2,0 ms?
El servo intentará ir más allá de su límite mecánico, lo que hace que el motor quede forzando contra el tope interno. Esto calienta las bobinas, desgasta engranajes y puede quemar el circuito de control en minutos. Algunos servos tienen protección por límite de corriente, pero la mayoría de los modelos económicos no. Limitar siempre los pulsos entre 1,0 ms y 2,0 ms en el firmware.
¿Cómo genero un pulso de 1,5 ms exacto con Arduino?
Con la librería Servo de Arduino se usa servo.writeMicroseconds(1500), que genera 1500 µs = 1,5 ms. También se puede usar servo.write(90) para un servo de 180°, ya que la librería mapea internamente 0°→544 µs y 180°→2400 µs por defecto (valores que difieren del estándar 1000–2000 µs, por eso es mejor usar writeMicroseconds para mayor precisión).
¿Un servo de 180° y uno de 270° reciben la misma señal PWM?
Sí, ambos reciben el mismo rango de pulsos (1,0–2,0 ms a 50 Hz). La diferencia está en el mecanismo interno: el servo de 270° simplemente tiene un mayor recorrido físico permitido. Un pulso de 2,0 ms moverá el eje a 180° en el primero y a 270° en el segundo. Intercambiarlos sin ajustar el firmware puede trabar la mecánica o dejar partes del rango inutilizadas.
¿Qué voltaje de alimentación necesita un servo típico?
Los servos estándar de hobby operan entre 4,8 V y 6,0 V. A 4,8 V el torque y velocidad son menores (ej: MG995 → 9,4 kg·cm a 4,8V vs 11 kg·cm a 6V). Los servos digitales de alto rendimiento pueden llegar a 7,4 V. La señal PWM de control puede ser de 3,3 V o 5 V; los servos modernos aceptan ambos niveles lógicos, pero conviene verificar el datasheet.
¿Qué diferencia hay entre un servo analógico y uno digital?
Un servo analógico lee la señal PWM una vez por período (cada 20 ms) y ajusta el motor con esa información. Un servo digital usa un microcontrolador interno que procesa la señal a 300–400 Hz, entregando correcciones más frecuentes al motor. Resultado: el digital tiene mayor torque de arranque, menos zumbido en posición estática y respuesta más rápida, pero consume más corriente en reposo. La fórmula de pulso a ángulo es idéntica en ambos.
¿Por qué mi servo vibra aunque el pulso sea estable?
Las causas más comunes son: (1) ruido eléctrico en la línea de alimentación — se soluciona con un capacitor de 100–470 µF entre VCC y GND cerca del servo. (2) Carga mecánica excesiva que el PID interno no puede estabilizar. (3) Resolución insuficiente del timer del microcontrolador: si el timer tiene pasos de 4 µs, el servo oscila entre dos posiciones adyacentes. Usar timers de 16 bits a 1 MHz (pasos de 1 µs) elimina este problema.
¿Cómo sé el rango exacto de pulsos de mi servo si no tengo el datasheet?
El método empírico seguro es ir aumentando el pulso de a 10 µs desde 1500 µs hacia ambos lados, observando cuándo el servo deja de moverse o empieza a forzar. Ese valor es el límite real del modelo. Típicamente: Futaba → 900–2100 µs, Tower Pro MG995 → 1000–2000 µs, Hitec → 900–2100 µs. Registrar esos límites y usarlos como Pulso_min y Pulso_max para mayor precisión.
Fuentes y referencias
Metodología y confianza
Contenido revisado por el equipo editorial de Hacé Cuentas, con apego a nuestra política editorial y metodología de cálculo.
Última revisión: 04 de junio de 2026. Los parámetros fiscales, legales y datos se verifican periódicamente con las fuentes citadas.
Los cálculos corren 100% en tu navegador. No guardamos ni transmitimos tus datos. Leé nuestra política de privacidad.
Resultados orientativos. Para decisiones financieras, médicas o legales críticas, consultá con un profesional.