Publicado 2026-04-03
Controlando unservoMotorizar con una placa Arduino es una de las tareas más comunes y útiles en proyectos de electrónica. Esta guía proporciona un método claro, práctico y verificado para conectar y programar unservousando el arduino estándarservobiblioteca. Aprenderá el cableado exacto, el código de funcionamiento y cómo solucionar problemas típicos, todo ello basado en escenarios del mundo real y documentación oficial.
La mayoría de los servomotores para aficionados (por ejemplo, microservos de 9 g o servos de tamaño estándar como SG90, MG90S o MG995) funcionan con cualquier placa Arduino (Uno, Nano, Mega, etc.). Para esta guía, asumimos:
Una placa Arduino (Uno es el ejemplo más común)
Un servo estándar de 5 V (rango de par común: 1,8 kg/cm a 13 kg/cm)
Cables de puente (macho a hembra para conexión directa)
Una fuente de alimentación independiente de 5 V-6 V (opcional pero recomendada para servos más grandes, explicada en la Sección 4)
No se requieren nombres de marcas específicos– las instrucciones se aplican a todos los servos analógicos estándar que funcionan con una señal PWM de 50 Hz (ancho de pulso de 500 µs a 2500 µs).
Siga exactamente este cableado para evitar daños o comportamiento errático.
Regla crítica:Nunca alimente un servo directamente desde el pin de 5 V del Arduino si el servo consume más de 200 mA durante el funcionamiento. Para la mayoría de los servos de 9g, el Arduino 5V directo es seguro para realizar pruebas. Para servos más grandes (por ejemplo, MG995), utilice una fuente de alimentación externa de 5 V-6 V y conecte la tierra del servo a la tierra del Arduino (tierra común).
La biblioteca Arduino Servo está preinstalada en el IDE oficial. Este código mueve el servo de 0° a 180° y viceversa, repetidamente.
#incluirServo miServo; // crear objeto servo int servoPin = 9; // pin de señal conectado al servo void setup() { myServo.attach(servoPin); // conecta el servo en el pin 9 } void loop() { myServo.write(0); // pasar a 0 grados de retraso(1000); // espera 1 segundo myServo.write(90); // mover a 90 grados (centro) delay(1000); miServo.write(180); // pasar a 180 grados delay(1000); }
Para controlar el servo a un ángulo específico(por ejemplo, 45°), simplemente usemiServo.write(45);. El rango válido es de 0 a 180.
Causa:Potencia insuficiente. Un servo estándar de 9 g consume entre 200 y 300 mA cuando se mueve; un servo grande consume hasta 1A. El regulador de 5 V integrado de Arduino (máximo ~500 mA) no puede manejarlo.
Arreglar:Utilice una fuente de alimentación externa de 5 V (por ejemplo, 4 pilas AA o un adaptador de 5 V 2 A). Conecte el positivo del suministro al cable rojo del servo, la tierra del suministro a Arduino GND y la tierra del servo al mismo GND.
Causa:El pin de señal no está conectado correctamente o el número de pin es incorrecto.
![]()
Arreglar:verificar quemyServo.attach(pin)utiliza un pin compatible con PWM. En Arduino Uno, los pines 3,5,6,9,10,11 admiten PWM. Se recomiendan los pines 9 y 10.
Causa:El servo está forzado contra un tope mecánico o el rango de ancho de pulso es incorrecto para ese modelo de servo.
Arreglar:Ajuste el ancho de pulso mínimo/máximo usandomyServo.attach(pin, mínimo, máximo)donde el valor mínimo es 544 µs (0°) y el máximo es 2400 µs (180°). Algunos servos requieren entre 500 y 2500 µs. Consulte la hoja de datos de su servo.
Para un control de velocidad preciso, puede generar manualmente la señal PWM. El servo espera una señal de 50 Hz (período de 20 ms). Un pulso de 1 ms = 0°, 1,5 ms = 90°, 2 ms = 180°. Este código se desplaza sin problemas:
intservoPin = 9; int ancho de pulso = 1500; // microsegundos, comienza en 90° void setup() { pinMode(servoPin, OUTPUT); } void loop() { // barrido de 1000 µs a 2000 µs (0° a 180°) for(pulseWidth = 1000; pulseWidth = 1000; pulseWidth -= 10) { digitalWrite(servoPin, HIGH); retrasoMicrosegundos(ancho de pulso); escritura digital (servoPin, BAJO); retraso(20 - ancho de pulso/1000); } retraso(1000); }
1. Verificación de energía:Con solo el servo conectado (sin código cargado), el servo debería permanecer quieto y no calentarse.
2. Prueba de señal:Cargue el código estándar de la Sección 3. Observe si el servo gira 0° → 90° → 180° → repita.
3. Prueba de carga:Sostenga suavemente la bocina del servo mientras se mueve. Debería producir un par notable pero no detenerse. Si se detiene, aumente la corriente de suministro de energía.
Cableado correctono es negociable: señal al pin PWM, alimentación al suministro adecuado, tierra común.
Utilice siempre la biblioteca Servopor simplicidad y confiabilidad. Cambie al control de pulso manual solo cuando necesite aumentar la velocidad.
Nunca exceda el voltaje nominal del servo(normalmente de 5 V a 6 V). Un voltaje más alto destruirá el circuito de control interno.
Protege tu Arduinonunca extrayendo más de 200 mA de su pin de 5 V para un servo.
1. Construye el circuito básico.en una placa usando un servo de 9 g y un Arduino Uno. Utilice el código de la Sección 3 para verificar el movimiento.
2. Agregar un potenciómetropara controlar el ángulo: lea el valor analógico de un potenciómetro (pin A0), asígnelo a 0–180, luegomyServo.write (valor asignado).
3. Incorpora a tu proyecto– Las aplicaciones comunes incluyen brazos robóticos, cardanes de cámara, mecanismos de dirección y abridores de puertas automáticos.
Si sigue esta guía, ahora dispone de un método verificado y repetible para controlar cualquier servo estándar con un Arduino. Los mismos principios se aplican a todas las placas compatibles con Arduino. Consulte siempre la hoja de datos de su servo para conocer los límites exactos de ancho de pulso y los requisitos actuales.
Hora de actualización: 2026-04-03
Comuníquese con el especialista en productos de Kpower para recomendarle un motor o caja de cambios adecuado para su producto.