Publicado 2026-04-13
La modulación de ancho de pulso (PWM) es el método estándar utilizado para controlar con precisión la posición angular de un pasatiempo estándar.servomotor. Variando la amplitud del impulso eléctrico enviado alservocada 20 milisegundos, puedes ordenar elservopara moverse a un ángulo específico, generalmente entre 0 y 180 grados. Esta guía proporciona las especificaciones exactas de la señal, la lógica de control paso a paso, ejemplos prácticos y consejos para la resolución de problemas para que pueda implementar el servocontrol PWM de inmediato.
Un servomotor estándar contiene un pequeño circuito de control que lee la señal PWM entrante. La posición del eje de salida del servo está determinada únicamente por elancho de pulso(duración de la señal alta) dentro de un marco fijo de 20 ms (50 Hz). La relación es lineal: un ancho de pulso específico es igual a un ángulo objetivo específico.
Mapeo estándar de pulso a ángulo (para servos de 0 a 180°):
0 grados:Pulso de 0,5 ms (500 microsegundos)
90 grados (neutro):Pulso de 1,5 ms (1500 microsegundos)
180 grados:Pulso de 2,5 ms (2500 microsegundos)
Estos valores son estándar de la industria. Verifique siempre la hoja de datos de su servo, pero más del 95% de los servos estándar siguen este mapeo exacto.
Para controlar el ángulo del servo, debe generar una señal repetida con dos parámetros clave:
El servo espera un nuevo pulso cada 20 milisegundos. Esto significa que la frecuencia PWM es 1/0,02 s = 50 Hz. No cambie esta frecuencia; de lo contrario, el servo vibrará o no responderá.
Utilice esta fórmula de interpolación lineal:
Ancho de pulso (ms) = 0,5 + (ángulo / 180) 2.0
Por ejemplo:
Ángulo = 45° → Pulso = 0,5 + (45/180)2,0 = 0,5 + 0,5 =1,0 ms
Ángulo = 135° → Pulso = 0,5 + (135/180)2.0 = 0.5 + 1.5 = 2,0 ms
En la práctica, configura un temporizador: salida ALTA para el ancho del pulso (por ejemplo, 1,5 ms), luego salida BAJA para el tiempo restante (20 ms – 1,5 ms = 18,5 ms). Repita continuamente.
Imagina que tienes un servo conectado a un brazo robótico. Desea que se mueva desde completamente hacia la izquierda (0°) hasta completamente hacia la derecha (180°) en pasos.
Secuencia de señal (cada línea es un ciclo de 20 ms):
Ciclo 1: ALTO durante 0,5 ms → El servo se mueve a 0°
Ciclo 2: ALTO durante 1,0 ms → El servo se mueve a 45°
Ciclo 3: ALTO durante 1,5 ms → El servo se mueve a 90°
Ciclo 4: ALTO durante 2,0 ms → El servo se mueve a 135°
Ciclo 5: ALTO durante 2,5 ms → El servo se mueve a 180°
Comportamiento observado:El servo avanzará a cada ángulo y mantendrá esa posición. No se desvía porque el circuito de control recibe constantemente el ancho de pulso objetivo.
Puede generar la señal PWM requerida usando:
Módulos de temporizador/contador de microcontrolador– Configure un PWM de 50 Hz con ciclo de trabajo variable. Ciclo de trabajo = (ancho de pulso / 20 ms) 100%. Para un pulso de 1,5 ms, ciclo de trabajo = 7,5%.
Software de bits– Controlar directamente un pin GPIO con retrasos. Menos preciso pero sirve para aprender.
Módulos de servocontrolador dedicados– Estos descargan la precisión de la sincronización, pero aún requieren el mismo rango de pulso de 0,5 a 2,5 ms.
Requisito crítico de precisión:La precisión del ancho de pulso debe estar dentro de ±10 µs (microsegundos). Se producen fluctuaciones o ángulos incorrectos si el tiempo se desvía en más de 20 µs.
Caso real:Un error común es utilizar un rango de 1,0 a 2,0 ms porque algunas bibliotecas de microcontroladores lo utilizan de forma predeterminada. Un usuario informó que su servo solo giró 90° en total. Después de cambiar el rango del pulso a 0,5–2,5 ms, se restableció la rotación completa de 180°.
PWM controla el ángulo del servo según el ancho del pulso, no solo por el ciclo de trabajo.Durante un período fijo de 20 ms, el tiempo absoluto alto (0,5 a 2,5 ms) determina la posición.
La relación es lineal:ancho de pulso = 0,5 ms + (ángulo/180)*2,0 ms.
Utilice siempre 50 Hz (período de 20 ms).Cualquier otra frecuencia provocará un comportamiento errático o ningún movimiento.
Verifique los anchos de pulso mínimo y máximo.La mayoría de los problemas provienen de un rango de pulso incorrecto, no de fallas de hardware.
Siga estos pasos inmediatamente para obtener resultados consistentes:
1. Mide la respuesta real de tu servo.Envíe pulsos de 0,5 ms, 1,5 ms y 2,5 ms. Marca los ángulos físicos. Si no son 0°, 90°, 180°, registre el mapeo real de pulso a ángulo.
2. Agregue un margen de seguridad de 100 a 200 µsen ambos extremos (pulso mínimo = 0,6 ms, máximo = 2,4 ms) para evitar la unión mecánica.
3. Utilice un hardware de temporizador dedicadoen lugar de retrasos en el software cuando sea posible. PWM basado en temporizador mantiene la precisión incluso cuando su código principal está ocupado.
4. Prueba con un analizador lógico u osciloscopio.para confirmar los anchos de pulso. Muchas simulaciones de software ocultan errores de sincronización.
5. Para proyectos multiservo,mantenga la fuente de alimentación separada de la fuente lógica. Un servo bloqueado puede consumir entre 1 y 2 A, lo que provoca caídas de voltaje que corrompen las señales PWM.
Si se adhiere estrictamente al rango de ancho de pulso de 0,5 a 2,5 ms dentro de un período de 20 ms, logrará un control de ángulo preciso y repetible en cualquier servomotor estándar. Primero implemente el paso de medición, luego ajuste su código y su servo se moverá exactamente donde usted lo ordene.
Hora de actualización: 2026-04-13
Comuníquese con el especialista en productos de Kpower para recomendarle un motor o caja de cambios adecuado para su producto.