Cómo controlar el ángulo del servomotor con un microcontrolador: una guía completa paso a paso_Gear Motor_Industry Insights_Kpower
Hogar > Perspectivas de la industria >Motorreductor
APOYO TÉCNICO

Soporte de producto

Cómo controlar el ángulo del servomotor con un microcontrolador: una guía completa paso a paso

Publicado 2026-04-17

01Cómo controlarservoÁngulo del motor con un microcontrolador: una guía completa paso a paso

Esta guía proporciona una explicación clara y práctica de exactamente cómo un microcontrolador controla el ángulo de rotación de un estándar.servomotor. Aprenderá el principio de funcionamiento básico, la señal eléctrica precisa requerida y el método completo paso a paso para generar esa señal utilizando cualquier microcontrolador común. No se hace referencia a marcas ni a productos específicos de la empresa; solo se utilizan principios genéricos y ampliamente aplicables y ejemplos del mundo real.

1. Principio básico: la modulación de ancho de pulso (PWM) determina directamente el ángulo

Un estándarservoel motor hacenoGira continuamente como un motor de CC normal. En cambio, se mueve a una posición angular específica (por ejemplo, 0°, 90° o 180°) y mantiene esa posición. El ángulo está controlado completamente por el ancho de un pulso eléctrico enviado cada 20 milisegundos (ms).

La relación directa es:

Ancho de pulso entre 1,0 ms y 2,0 msÁngulo entre 0° y 180°(para los servos más comunes)

Un impulso de 1,0 ms → 0° (completamente en sentido contrario a las agujas del reloj)

Un pulso de 1,5 ms → 90° (posición central)

Un pulso de 2,0 ms → 180° (completamente en el sentido de las agujas del reloj)

> Ejemplo del mundo real:En un brazo robótico aficionado, para hacer que la pinza se cierre completamente (0°), el microcontrolador envía un pulso repetido de 1,0 ms. Para abrir la pinza completamente (180°), envía un impulso de 2,0 ms. Para una posición semiabierta (90°), envía un pulso de 1,5 ms.

Esta señal se llamaModulación de ancho de pulso (PWM)– un método en el que el microcontrolador genera una señal digital que cambia entre ON (5 V o 3,3 V) y OFF (0 V) muy rápidamente, y la duración del pulso de ON es lo que lee el servo.

2. Paso a paso: cómo el microcontrolador genera el pulso correcto

Siga estos pasos exactamente para controlar cualquier servo estándar con cualquier microcontrolador:

Paso 1: identificar los requisitos de señal del servo

La mayoría de los servos estándar funcionan con:

Voltaje:4,8 V – 6,0 V (fuente de alimentación,node los pines del microcontrolador)

Tensión de la señal de control:3,3 V o 5 V (coincide con el nivel lógico del microcontrolador)

Periodo de repetición del pulso:20 ms (frecuencia de 50 Hz)

Rango de ancho de pulso:1,0 ms a 2,0 ms (de 0° a 180°)

Importante:Verifique la hoja de datos de su servo para conocer el rango exacto de ancho de pulso. Algunos servos usan de 0,5 ms a 2,5 ms para 0°–180°, o de 1,0 ms a 2,0 ms para 0°–90°. El principio sigue siendo idéntico.

Paso 2: Conecte correctamente el servo al microcontrolador

Un servo estándar tiene tres cables:

Color del cable (típico) Función Conexión
Marrón o negro Tierra (GND) Tierra del microcontrolador
Rojo Alimentación (VCC, 5V) Fuente de alimentación externa de 5 V (no utilice el pin de 5 V del microcontrolador para más de un servo pequeño)
naranja o amarillo Señal (PWM) Microcontrolador Pin digital compatible con PWM

Nota de seguridad crítica:Nunca alimente un servo directamente desde el pin de 5V de un microcontrolador. Un servo puede consumir entre 200 y 1000 mA, lo que supera la clasificación de pines de la mayoría de los microcontroladores. Utilice una fuente de alimentación independiente de 5 V con conexión a tierra común.

Paso 3: configurar el hardware PWM del microcontrolador

Cada microcontrolador tiene temporizadores PWM integrados. La configuración requiere establecer dos parámetros:

Frecuencia = 50Hz(período = 20 ms)

Resolución(normalmente de 8 a 16 bits, según el microcontrolador)

Ejemplo de cálculo genérico (para cualquier microcontrolador):

Si su resolución PWM es de 8 bits (0 a 255) y el período total es de 20 ms (20 000 µs):

Pulso de 1,0 ms → ciclo de trabajo = (1,0 ms / 20 ms) × 255 = 12,75 → usar 13

Pulso de 1,5 ms → ciclo de trabajo = (1,5 ms / 20 ms) × 255 = 19,125 → usar 19

Pulso de 2,0 ms → ciclo de trabajo = (2,0 ms / 20 ms) × 255 = 25,5 → usar 26

Caso del mundo real:Un microcontrolador común de 8 bits configurado en PWM de 50 Hz escribirá un valor de 13 en el registro de comparación de PWM para lograr 0°, 19 para 90° y 26 para 180°.

Paso 4: escriba el código del microcontrolador para establecer el ángulo deseado

La lógica del código es siempre la misma en todos los microcontroladores:

1. Inicialice el hardware PWM con una frecuencia de 50 Hz.

2. Calcule el ancho de pulso requerido en microsegundos para su ángulo objetivo usando la fórmula lineal:

Ancho de pulso (μs) = 1000 + (ángulo / 180) × 1000(para un rango de 1,0 a 2,0 ms)

Ángulo 0° → 1000 µs

Ángulo 90° → 1500 µs

Ángulo 180° → 2000 µs

3. Convierta el ancho del pulso al valor del registro del ciclo de trabajo del microcontrolador.

4. Escriba ese valor en el pin de salida PWM.

Pseudocódigo genérico (se adapta a cualquier microcontrolador):

// Supongamos que el temporizador PWM ya está configurado para 50 Hz, resolución de 8 bits int targetAngle = 90; // grados int pulseWidth_us = 1000 + (targetAngle1000/180); int dutyCycleValue = (pulseWidth_us255) / 20000; setPWMDutyCycle(PWM_PIN, dutyCycleValue);

Paso 5: Verificar con mediciones del mundo real

Después de cargar el código, use un osciloscopio o un analizador lógico para verificar la señal:

La frecuencia debe ser de 50 Hz.(período = 20 ms)

El ancho del pulso debe coincidir con el valor calculado(por ejemplo, 1,5 ms para 90°)

Problema común en el mundo real:Si el servo tiembla o no se mueve, es probable que el ancho del pulso sea incorrecto. Mida directamente en el pin de señal. Un error de 0,05 ms puede provocar una desviación de 5° a 10°.

3. Ejemplo completo: Controlar un servo de 0° a 180° y viceversa

A continuación se muestra un ejemplo genérico completo que funciona en cualquier microcontrolador después de una pequeña adaptación de sintaxis. La lógica es lo que importa.

Guión:Una plataforma de panorámica de cámara sencilla. El servo debe barrer de 0° a 180° y retroceder continuamente.

Lógica de implementación paso a paso:

1. Establezca la frecuencia PWM en 50 Hz.

2. Definir una funciónestablecerÁngulo(ángulo)eso:

Ángulo de abrazadera entre 0° y 180°

Calcula el ancho del pulso = 1000 + (ángulo × 1000/180) microsegundos

Se convierte al valor del registro del ciclo de trabajo

Escribe en el pin PWM

3. En el bucle principal:

Incrementar el ángulo de 0° a 180° en pasos de 1°

LlamarestablecerÁngulo(ángulo)para cada paso

Espere 15 ms (permite que el servo se mueva físicamente)

Luego disminuya el ángulo nuevamente a 0°

Resultado esperado:El servo gira suavemente de un extremo al otro, deteniéndose con precisión en cada ángulo calculado.

4. Tabla de verificación crítica: ancho de pulso versus ángulo

Utilice esta tabla para una verificación rápida sin cálculos:

Ángulo deseado Ancho de pulso requerido (μs) Ciclo de trabajo a 50 Hz, 8 bits (0–255)
1000 13
45° 1250 16
90° 1500 19
135° 1750 22
180° 2000 26

Nota:Si su servo no alcanza exactamente 0° o 180°, ajuste ligeramente los anchos de pulso mínimo y máximo (por ejemplo, 950 µs para 0°, 2050 µs para 180°). Esto es normal debido a las tolerancias de fabricación.

5. Por qué este método es universal y confiable

El método de control de ancho de pulso es una servointerfaz analógica estándar de la industria utilizada durante décadas. Cada servo estándar, independientemente del fabricante, responde al mismo rango de pulso de 1,0 a 2,0 ms. Esto significa:

Puede controlar cualquier servo estándar con cualquier microcontrolador que genere 50 Hz PWM.

La misma lógica de código funciona para microcontroladores de 8 a 32 bits.

No se requieren bibliotecas propietarias ni funciones específicas de marca.

6. Problemas comunes del mundo real y sus soluciones

Problema Causa más probable Solución
El servo no se mueve en absoluto. No hay energía al servo o conexión a tierra incorrecta Conecte la alimentación del servo a una fuente externa de 5 V y a una tierra común con el microcontrolador.
El servo vibra o tiembla El ancho del pulso es inestable o la frecuencia no es exactamente 50 Hz Verifique la configuración de PWM; utilice hardware PWM en lugar de bucles de retardo de software
El servo solo se mueve a 0° y 180°, no a ángulos intermedios El código envía solo anchos de pulso mínimos y máximos Verificar la fórmula de cálculo; medir el ancho del pulso con un osciloscopio
El servo se calienta mucho La frecuencia del pulso es demasiado alta (por ejemplo, 300 Hz en lugar de 50 Hz) Reconfigure PWM exactamente a 50 Hz (período de 20 ms)
La posición del servo cambia con el tiempo El voltaje de la fuente de alimentación es inestable Agregue un condensador grande (1000 µF) a través de las líneas de alimentación del servo

7. Conclusión práctica: sus próximos pasos exactos

Principio básico para recordar:

> El ángulo del servo esdirectamente proporcionalal ancho de pulso entre 1,0 ms y 2,0 ms, repetido cada 20 ms. Cambie el ancho del pulso y cambiará el ángulo; nada más importa.

Plan de acción inmediato para implementar hoy:

1. Verifique el rango de pulso de su servo– Consulte su hoja de datos para conocer los anchos de pulso mínimo/central/máximo. La mayoría usa 1,0/1,5/2,0 ms para 0/90/180°.

2. Configure el PWM de su microcontrolador– Configure un pin PWM a una frecuencia de 50 Hz. Utilice PWM de hardware, no bit-banging de software, para obtener pulsos estables.

3. Escribe la fórmula de conversión de ángulo a pulso.- Usar:pulso_us = 1000 + (ángulo_grados × 1000/180).

4. Prueba con tres ángulos conocidos– Comando 0°, 90° y 180°. Mida la posición real del eje. Ajuste los anchos de pulso mínimo/máximo si es necesario.

5. Agregar una rutina de calibración– Almacene los anchos de pulso mínimo y máximo exactos de su servo en código. Esto garantiza un rango perfecto de 0° a 180° a pesar de las variaciones de fabricación.

Validación final:Después de seguir esta guía, podrá controlar cualquier ángulo de 0° a 180° con una precisión de ±1°. El mismo método funciona para servos de rotación continua (donde el ancho del pulso controla la velocidad y la dirección) y para servos con diferentes rangos de ángulo (por ejemplo, 0°–90° o 0°–270°); simplemente ajuste el rango de ancho del pulso en consecuencia.

Repita la verdad central:Un microcontrolador controla el ángulo de un servo emitiendo una señal PWM de 50 Hz donde el tiempo de ENCENDIDO (ancho de pulso) varía de 1,0 ms (0°) a 2,0 ms (180°). Domine esta relación pulso-ángulo y podrá controlar cualquier servo con cualquier microcontrolador.

Hora de actualización: 2026-04-17

Impulsando el futuro

Comuníquese con el especialista en productos de Kpower para recomendarle un motor o caja de cambios adecuado para su producto.

Correo a Kpower
Enviar consulta
Mensaje de WhatsApp
+86 0769 8399 3238
 
kpowerMapa