Publicado 2026-04-21
Esta guía proporciona una explicación práctica y completa de cómo controlar la rotación de un estándar.servomotor.servolos motores no giran continuamente como los motores de CC normales; en cambio, se mueven a una posición angular específica (por ejemplo, 0°, 90° o 180°) y mantienen esa posición. El método más confiable y ampliamente utilizado para lograr este control direccional preciso es generar una señal de modulación de ancho de pulso (PWM) con un patrón de sincronización específico. Este artículo cubre el principio de funcionamiento exacto, las conexiones de hardware requeridas, ejemplos de lógica de codificación, pasos comunes para la solución de problemas y un plan de acción final. Toda la información se basa en especificaciones estándar de la industria y prácticas verificadas.
AservoEl ángulo de rotación del motor está determinado únicamente por el ancho de un pulso eléctrico enviado cada 20 milisegundos (ms). Esta señal se conoce comopulso de control.
Periodo de señal: 20 ms (frecuencia de 50 Hz): consistente en casi todos los servos estándar.
Rango de ancho de pulso: Normalmente de 0,5 ms a 2,5 ms.
Pulso de 0,5 ms → girar a 0° (posición totalmente en sentido contrario a las agujas del reloj)
Pulso de 1,5 ms → girar a 90° (posición central/neutra)
Pulso de 2,5 ms → girar a 180° (posición completa en el sentido de las agujas del reloj)
> fuente verificable: Este estándar de sincronización se publica en las hojas de datos oficiales de los principales fabricantes de servos (por ejemplo, Futaba, Hitec, Tower Pro) y es consistente con el protocolo de la industria de hobby RC.
Conclusión clave: El circuito de control interno del servo compara el ancho del pulso entrante con la retroalimentación de posición actual de un potenciómetro conectado al eje de salida. Cualquier diferencia hace que el motor gire en la dirección correcta hasta que los dos coincidan. Este sistema de circuito cerrado le brinda un control angular preciso y repetible.
Para implementar el control de rotación del servo, necesita los siguientes elementos (no se requieren marcas específicas):
Caso del mundo real: Un aficionado que construyó un brazo robótico controlado a distancia utilizó exactamente estos componentes. El servo se alimentó por separado del microcontrolador para evitar caídas de voltaje. Al variar la duración del pulso de 0,5 ms a 2,5 ms en pasos de 0,1 ms, la articulación del brazo se movió suavemente de 0° a 180°.
La mayoría de los servos estándar utilizan un conector de 3 pines con los siguientes códigos de color (consulte la hoja de datos de su servo):
Marrón o negro→ Tierra (GND): conecte a tierra común de la fuente de alimentación y el microcontrolador.
Rojo→ Alimentación (Vcc): conecte a una fuente de alimentación de +5 V o +6 V CC. No alimente un servo directamente desde el pin de 5 V de un microcontrolador si consume más de 200 mA; utilice un paquete de baterías independiente.
naranja o amarillo→ Señal (entrada PWM): conéctela a un pin digital compatible con PWM en el microcontrolador.
Conexión paso a paso:
1. Conecte todas las tierras (servo GND, microcontrolador GND y terminal negativo de la fuente de alimentación) juntas.
2. Conecte la alimentación del servo (cable rojo) al terminal positivo del paquete de batería externo.
3. Conecte la señal del servo (cable naranja) al pin PWM elegido en el microcontrolador.
> Nota de seguridad crítica: Nunca conecte el cable rojo de un servo directamente a la salida de 5 V de un microcontrolador si el servo requiere más de 500 mA de corriente máxima; puede dañar la placa. Utilice siempre una fuente de alimentación independiente para los servos de alto par.
A continuación se muestra una lógica de código genérica que funciona en casi cualquier plataforma de microcontrolador. El ejemplo utiliza funciones estándar para generar una señal PWM de 50 Hz y cambiar el ancho del pulso.
Pseudocódigo (para comprensión):
setup(): establece el pin PWM como salida establece la frecuencia PWM a 50 Hz (período = 20 ms) loop(): // Gira a 0° establece el ancho del pulso = 0,5 ms de retraso (500) // espera 0,5 segundos para que el servo se mueva // Gira a 90° establece el ancho del pulso = 1,5 ms de retraso (500) // Gira a 180° establece el ancho del pulso = 2,5 ms de retraso (500)
![]()
Implementación práctica (estilo C para placas compatibles con Arduino):
#incluir// Biblioteca de servos estándar Servo myServo; // Crear objeto servo void setup() { myServo.attach(9); // Pin de señal 9, 50 Hz configurado automáticamente } void loop() { myServo.write(0); // 0° (establece internamente un pulso de 0,5 ms) delay(1000); miServo.write(90); // retraso de 90° (pulso de 1,5 ms) (1000); miServo.write(180); // retraso de 180° (pulso de 2,5 ms) (1000); }
Si su biblioteca no proporciona un método write(), puede generar manualmente el PWM mediante interrupciones del temporizador. El ancho de pulso exacto debe mantenerse durante la duración requerida, luego el pin de señal se establece en nivel bajo durante el resto del período de 20 ms.
Incluso con el código correcto, es posible que observe que el servo no gira hasta los puntos finales esperados. Esto se debe a las tolerancias de fabricación.
Situación común: Un usuario compró dos servos idénticos. Uno giró exactamente de 0° a 180° con pulsos de 0,5 a 2,5 ms, mientras que el otro solo se movió de 10° a 170° con la misma señal.
Solución: calibre los límites del pulso:
1. Comience con un pulso de 1,5 ms (centro).
2. Disminuya gradualmente el ancho del pulso en pasos de 0,01 ms hasta que el servo deje de moverse. Ese pulso más bajo corresponde a la posición física de 0° de su servo.
3. Aumente gradualmente el ancho del pulso desde 1,5 ms hasta que el servo deje de moverse. Ese pulso más alto corresponde a la posición física de 180° de su servo.
Registre estos valores calibrados y utilícelos en su código en lugar de los 0,5 ms y 2,5 ms nominales. La mayoría de los servos funcionan entre 0,6 y 2,4 ms después de la calibración.
Algunas aplicaciones (por ejemplo, ruedas de robots) requieren una rotación ilimitada, no solo un movimiento de 180°. Los servos estándar se pueden modificar a servos de rotación continua quitando el tope mecánico en el engranaje de salida y reemplazando el potenciómetro de retroalimentación con dos resistencias fijas. Sin embargo, para la mayoría de los usuarios, se recomienda comprar un servo de rotación continua especialmente diseñado.
Método de control para servos de rotación continua.:
Pulso de 1,5 ms → detener
>1,5 ms (p. ej., 1,7 ms) → girar en el sentido de las agujas del reloj a velocidad proporcional
Punto central para recordar: Lograr una rotación precisa del servo consiste exclusivamente en generar el ancho de pulso correcto (0,5 a 2,5 ms) en un período de 20 ms. Ningún otro método le ofrece la misma precisión y simplicidad.
Recomendaciones prácticas:
1. Comience con un circuito de prueba– Utilice un solo servo, una batería de 5 V y cualquier placa de microcontrolador. Cargue el código de ejemplo que barre de 0° a 180° en pasos de 10°.
2. Calibrar cada nuevo servo– Ejecute siempre la rutina de calibración (sección 5) antes de finalizar su proyecto. Esto elimina errores de posicionamiento.
3. Utilice una fuente de alimentación dedicada– Nunca confíes en el pin de 5 V del microcontrolador para más de un servo pequeño. Los suministros externos de 5V/2A son económicos y evitan reinicios.
4. Verificar con un osciloscopio o analizador lógico– Si encuentra problemas persistentes, mida el ancho de pulso real en el pin de señal. Debe ser estable y estar entre 0,5 y 2,5 ms.
5. Documente sus valores calibrados– Anote los anchos de pulso mínimo y máximo para cada servo en su proyecto. Esto garantiza la repetibilidad si reemplaza un servo más adelante.
Siguiendo esta guía, logrará un control confiable y repetible de la rotación del servomotor en cualquier proyecto de robótica o mecatrónica. Consulte siempre la hoja de datos de su servo para conocer las especificaciones exactas y, en caso de duda, pruebe empíricamente el rango de ancho de pulso utilizando el método de calibración descrito anteriormente.
Hora de actualización: 2026-04-21
Comuníquese con el especialista en productos de Kpower para recomendarle un motor o caja de cambios adecuado para su producto.