Publicado 2026-04-20
Esta guía proporciona instrucciones paso a paso para conectar y controlar un microservomotor usando una Raspberry Pi. Aprenderá el cableado correcto, ejemplos de código Python y soluciones prácticas a problemas comunes. Toda la información se basa en prácticas electrónicas estándar y se verifica con pruebas del mundo real.
Una Raspberry Pi (cualquier modelo con pines GPIO, como 3B+, 4 o 5)
un microservomotor (tipo común: 9gservo, 3 hilos)
Cables de puente (hembra a hembra)
Fuente de alimentación externa de 5 V (opcional pero recomendada para un funcionamiento estable)
Un pequeño potenciómetro (opcional, por ejemplo de control manual)
Nota de seguridad importante:No encienda elmicroservodirectamente desde el pin de 5 V de la Raspberry Pi si está ejecutando el servo bajo carga o durante períodos prolongados. La salida de 5 V del Pi sólo puede suministrar unos 500 mA, y unmicroservoPuede consumir 200-400 mA durante el movimiento. Utilice una fuente de alimentación independiente de 5 V (por ejemplo, 4 pilas AA o un banco de energía USB de 5 V) y conecte la tierra de esa fuente a la tierra del Pi.
Siga exactamente estas tres conexiones. Elmicroservotiene tres cables:
Marrón o negro→ Tierra (GND)
Rojo→ Alimentación de 5 V (suministro externo o pin de 5 V de Pi solo para pruebas)
naranja o amarillo→ Pin GPIO (por ejemplo, GPIO18)
Ejemplo de caso común:Un aficionado intentó alimentar dos microservos directamente desde el pin de 5V del Pi. Los servos se movieron erráticamente y el Pi se reinició. Después de agregar una batería separada de 5 V (4xAA) y conectar todas las masas, ambos servos funcionaron sin problemas durante horas.
Un microservomotor contiene un motor de CC, un potenciómetro (sensor de posición) y un circuito de control. se utilizaModulación de ancho de pulso (PWM)para ajustar el ángulo del eje. El servo espera una señal de 50 Hz (período de 20 ms). La longitud del pulso determina el ángulo:
Pulso de 0,5 ms → 0 grados
Pulso de 1,5 ms → 90 grados (centro)
Pulso de 2,5 ms → 180 grados
La mayoría de los microservos tienen un rango físico de aproximadamente 180 grados, pero algunos son de 90 o 270 grados. Pruebe siempre los límites sin carga primero.
1. Habilite el hardware PWM en Raspberry Pi. Abra una terminal y ejecute:
sudo raspi-config
Navegue a: Opciones de interfaz → GPIO remoto → Sí → Finalizar.
2. Instale la biblioteca RPi.GPIO (preinstalada en la mayoría de las versiones del sistema operativo Raspberry Pi). Para un control total de PWM, instale pigpio:
sudo apt actualizar sudo apt instalar pigpio python3-pigpio sudo systemctl habilitar pigpiod sudo systemctl iniciar pigpiod
Crea un archivo llamadoservo_sweep.py:
import pigpio import time # Conectarse al demonio pigpio pi = pigpio.pi() si no pi.connected: print("El demonio Pigpio no se está ejecutando. Comience con: sudo pigpiod") exit() # Establezca el pin GPIO (usando GPIO18) SERVO_PIN = 18 # Defina el ancho del pulso en microsegundos (500 = 0,5 ms, 2500 = 2,5 ms) def set_angle(angle): # Convertir ángulo (0-180) a ancho de pulso (500-2500) pulso = 500 + (ángulo / 180,0)2000 pi.set_servo_pulsewidth(SERVO_PIN, pulse) intente: while True: para ángulo en el rango(0, 181, 10): set_angle(angle) time.sleep(0.1) para ángulo en el rango(180, -1,-10): set_angle(angle) time.sleep(0.1) excepto KeyboardInterrupt: print("Deteniendo...") pi.set_servo_pulsewidth(SERVO_PIN, 0) # Detener la señal PWM pi.stop()
Ejecute el código:
sudo pigpiod # si aún no está ejecutando python3 servo_sweep.py
Resultado esperado:El brazo del servo realizará un barrido de 0 a 180 grados y viceversa, haciendo una pausa de 0,1 segundos en cada paso de 10 grados.
Este ejemplo le permite girar un potenciómetro para posicionar el servo. Conecte un potenciómetro de 10 kΩ: pin izquierdo a 3,3 V, pin derecho a GND, pin central a GPIO17 (entrada ADC). La Raspberry Pi no tiene entradas analógicas, por lo que utilizamos un chip ADC MCP3008 o un método de sincronización RC simple. A continuación se muestra el método de sincronización RC (no se necesita chip adicional).
Conecte un condensador de 1 μF entre GPIO23 y GND, y una resistencia de 10 kΩ de GPIO23 al limpiador del potenciómetro. Esto es avanzado. Para simplificar, utilice un MCP3008 con SPI. Sin embargo, hay un caso común: muchos principiantes fracasan porque intentan leer lo analógico directamente.Recomendación:Utilice un ADC económico como MCP3008 o compre una placa de servocontrolador.
Aquí hay un código confiable usando un MCP3008:
importar pigpio importar tiempo importar spidev spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 1350000 def read_adc(canal): si canal 7: retorno -1 adc = spi.xfer2([1, (8+canal) 2000 pi.set_servo_pulsewidth(SERVO_PIN, pulso) intentar: mientras Verdadero: valor = read_adc(0) # potenciómetro en el canal 0 ángulo = (valor / 1023.0) * 180 set_angle(angle) time.sleep(0.02) excepto KeyboardInterrupt: pi.set_servo_pulsewidth(SERVO_PIN, 0) pi.stop() spi.close()
Para controlar hasta 16 microservos, utilice una placa de controlador PWM dedicada (sin nombrar marcas, busque "servocontrolador PWM de 16 canales I2C"). Conéctelo a través de I2C. El controlador requiere sólo dos pines GPIO (SDA/SCL) y una fuente externa de 5V. Cada servo tiene su propio pin de señal. Esto elimina la fluctuación y la carga de la CPU.
1. Comience siempre con un servo y una fuente de alimentación externa de 5 V.Pruebe el código de barrido antes de agregar su propia lógica.
2. Utilice pigpio para todos los proyectos de servos.Proporciona PWM sincronizado por hardware con una precisión de microsegundos, esencial para un movimiento fluido.
3. Establezca el pulso del servo en 0 (apagado) cuando no se esté moviendo.Esto reduce el consumo de energía y evita el sobrecalentamiento.
4. Agregue un condensador de 1000 μF a través de los terminales de la fuente de alimentación.(positivo y tierra) cerca del servo para suavizar los picos de voltaje.
5. Para proyectos que funcionan con baterías, utilice 4 pilas AA recargables NiMH(4,8 V) o un UBEC regulado de 5 V. No utilice 6V a menos que el servo esté clasificado para ello (la mayoría de los microservos aceptan 4,8-6,0V).
Controlar un microservomotor con una Raspberry Pi requiere un cableado correcto, una fuente de alimentación externa para un funcionamiento confiable y la biblioteca pigpio para señales PWM precisas. Los pasos principales son: conectar la tierra y la alimentación correctamente, usar GPIO18 para PWM, escribir código Python que asigne ángulos a anchos de pulso entre 500 y 2500 microsegundos y siempre probar primero sin carga.
Pasos de acción finales:
Ensamble el circuito con una batería de 5V separada.
Instale pigpio y ejecute el código de barrido.
Modifique el código para integrar el servocontrol en su propio proyecto (brazo robótico, cámara con giro e inclinación o alimentador automático).
Si experimenta inquietud, cambie de RPi.GPIO a pigpio.
Para múltiples servos, agregue una placa de controlador PWM.
Siguiendo esta guía, logrará un control estable y preciso de cualquier microservomotor estándar utilizando su Raspberry Pi.
Hora de actualización: 2026-04-20
Comuníquese con el especialista en productos de Kpower para recomendarle un motor o caja de cambios adecuado para su producto.