10M+ Componentes electrónicos en stock
Certificado ISO
Garantía incluida
Entrega Rápida
¿Piezas difíciles de encontrar?
Nosotros los buscamos
Solicitar un presupuesto

Explicación de Raspberry Pi PWM: Control GPIO, aplicaciones y resolución de problemas

Jun 04 2026
Fuente: Michael Chen
Explorar: 1131

La modulación de ancho de pulso (PWM) es una de las técnicas más importantes utilizadas en proyectos de electrónica y automatización de Raspberry Pi. Permite que los pines GPIO digitales simulen un control similar al analógico ajustando el tiempo de señal en lugar del voltaje de salida.

Figure 1. Raspberry Pi PWM

Resumen de Raspberry Pi PWM

La modulación de ancho de pulso (PWM) es un método que permite a los pines GPIO Raspberry Pi controlar la potencia de salida conmutando rápidamente una señal digital en ENCENDIDO y APAGADO. En lugar de crear un voltaje analógico real, el PWM cambia el tiempo que la señal permanece ALTA durante cada ciclo. Este porcentaje de PUNTUALIDAD se llama ciclo de trabajo.

Cómo funciona el PWM en Raspberry Pi

Figure 2. How PWM Works on Raspberry Pi

Una señal PWM cambia repetidamente un pin GPIO Raspberry Pi entre estados ALTO y BAJO. La señal sigue siendo digital, pero los dispositivos conectados responden al efecto medio de la conmutación.

Dos parámetros principales controlan el funcionamiento de la PWM:

Parámetro PWMSignificado
Frecuencia¿Cuántas veces se repite la señal por segundo
Ciclo de trabajo¿Cuánto tiempo permanece la señal encendida durante cada ciclo

En los pines GPIO de la Raspberry Pi, el ALTO es aproximadamente 3,3V. Un ciclo de trabajo del 50% significa que la señal se mantiene ALTA la mitad del tiempo y BAJA la otra parte. Esto puede hacer que un LED parezca medio brillante o reducir la potencia media entregada a un motor.

El ciclo de trabajo se calcula utilizando:

Ciclo de trabajo = Tiempo ON / Periodo Total × 100%

Ciclo de trabajoComportamiento de la señalEfecto práctico
0%Siempre APAGADOSin salida
25%ON durante un cuarto del cicloBaja salida
50%ON durante la mitad del cicloProducción media
75%ON durante tres cuartas partes del cicloAlta producción
100%Siempre ENCENDIDOProducción completa

Aumentar el ciclo de trabajo incrementa la producción media, mientras que disminuir el ciclo de trabajo la reduce.

La frecuencia de PWM es el número de ciclos de PWM por segundo. Se mide en hercios (Hz).

La frecuencia se calcula usando:

f=1/T

DispositivoFrecuencia típica de PWM
LEDsCientos de Hz o más
Motores de corriente continuaCientos de Hz a varios kHz
ServosAlrededor de 50 Hz
Salida de audioFrecuencias mucho más altas

La frecuencia incorrecta puede causar parpadeos LED, motores ruidosos, servos inestables o mala calidad de audio.

PWM por hardware vs PWM por software en Raspberry Pi

Figure 3. Hardware PWM vs Software PWM on Raspberry Pi

TemaPWM por hardwareSoftware PWM
DefiniciónUtiliza hardware PWM dedicado dentro del procesador Raspberry PiUtiliza conmutación GPIO controlada por software para crear pulsos PWM
Control de TemporizaciónControlado por hardwareControlado por software y el sistema operativo Linux
Precisión del tiempoAltoModerado
Estabilidad de la señalMuy estable con menos jitter¿Puede tener un jitter, especialmente bajo una carga intensa de CPU
Uso de la CPUBajo uso de CPUMayor uso de la CPU
GPIO FlexibilidadLimitado a pines GPIO seleccionadosPuede funcionar con muchos pines GPIO
Control de frecuenciaMás preciso y estableDepende de la carga del sistema
Rendimiento bajo cargaMantiene una salida estable mejor durante la actividad en segundo planoPuede volverse inestable cuando las tareas en segundo plano de Linux interrumpen el tiempo de pulsos
Mejores aplicacionesServos, drivers de motor, ventiladores, salida de audio, sistemas de control de precisiónAtenuación LED, proyectos para principiantes, control a baja velocidad, indicadores de estado
Principal ventajaSalida PWM suave y precisaConfiguración fácil y más opciones de GPIO
Limitación principalDisponible solo en pines seleccionadosTiempo menos preciso
Uso recomendadoÚsalo cuando la precisión del tiempo importaÚsalo para proyectos sencillos donde se aceptan pequeños errores de tiempo

Pines y configuración de GPIO PWM de Raspberry Pi

Figure 4. Raspberry Pi PWM GPIO Pins

Numeración GPIO y pines hardware PWM

Raspberry Pi utiliza múltiples sistemas de numeración GPIO. La mayoría de las librerías modernas de Python utilizan numeración BCM, mientras que la numeración física se refiere a la ubicación real de los pines en el encabezado.

Tipo de numeraciónSignificado
Numeración BCMLa numeración GPIO de Broadcom se utiliza internamente
Numeración física de los alfileresPosiciones reales de los pines del encabezado
Numeración de WiringPiSistema de numeración antiguo y obsoleto

Verifica siempre la numeración GPIO antes de cablear el hardware.

Pines PWM de hardware comunes

BCM GPIOPin físicoCanal PWMUso común
GPIO12Pin 32PWM0LEDs, motores, servos
GPIO13Pin 33PWM1LEDs, motores, servos
GPIO18Pin 12PWM0Audio, servos, control motor
GPIO19Pin 35PWM1Audio, servos, control motor

GPIO18 se utiliza comúnmente porque soporta PWM por hardware y está ampliamente soportado en tutoriales y bibliotecas de PWM.

Bibliotecas y configuración de PWM

Bibliotecas PWM comunes de Raspberry Pi

BibliotecaPropósito principalNotas
RPi.GPIOControl básico de GPIO y PWMAmigable para principiantes
GPIOZEROControl simplificado de dispositivosInterfaz de alto nivel
PipioSincronización precisa y PWM avanzadoSoporta la temporización DMA
LGPIOControl moderno de GPIOAcceso de nivel inferior

Parámetros típicos de configuración PWM

ParámetroDescripción
FrecuenciaVelocidad de conmutación PWM
Ciclo de trabajoPorcentaje del tiempo ON
Pin GPIOPin de salida PWM seleccionado
Modo PWMPWM de hardware o PWM de software

Limitaciones de PWM y seguridad del cableado

El hardware PWM de Raspberry Pi tiene varias limitaciones que se vuelven importantes en robótica, control motor, sistemas de audio y aplicaciones industriales.

LimitaciónExplicación
Canales PWM limitadosSolo hay un pequeño número de salidas hardware PWM disponibles
Funciones compartidasAlgunos pines GPIO comparten periféricos
Conflictos de audioEl PWM puede entrar en conflicto con el audio a bordo
Restricciones de pinesNo todos los pines GPIO soportan PWM por hardware
Compartición de frecuenciaAlgunos canales PWM comparten fuentes de reloj
Dependencia de DMALos métodos avanzados de PWM pueden utilizar recursos DMA

Muchos problemas de PWM se deben a errores de cableado más que a problemas de software.

Error de cableadoPor qué importa
Mezcla de BCM y numeración físicaControla el pin GPIO incorrecto
Conexión de motores directamente a GPIOPuede dañar la Raspberry Pi
Falta un terreno comúnCausas señales inestables
Superar los límites de corriente del GPIOPuede dañar permanentemente los pines GPIO
Falta un diodo de retroceso Los picos de tensión pueden dañar componentes
Conexión de voltaje incorrectaLos pines GPIO solo soportan lógica de 3,3V
Cables puentes sueltosCausa señales PWM inestables

Componentes de protección recomendados

ComponentePropósito
MOSFETConmuta de forma segura cargas de mayor corriente
Conductor de puente en HControla la velocidad y dirección del motor
Diodo de retroceso de vueloProtege contra picos de tensión inductivos
Fuente de alimentación externaAlimenta los motores de forma segura
OptoacopladorProporciona aislamiento eléctrico

Aplicaciones PWM en Raspberry Pi

Sistemas de atenuación LED 5.1

Figure 5. LED Dimming Systems

El PWM se utiliza ampliamente en proyectos de LED Raspberry Pi porque puede controlar el brillo sin necesidad de un pin de salida analógico real. Al cambiar el ciclo de trabajo, los LED pueden parecer más tenues o más brillantes. Esto es útil para el control de brillo LED, mezcla de colores RGB, iluminación decorativa, sistemas de brillo adaptativo e indicadores de estado. Se debe usar una frecuencia PWM suficientemente alta para evitar el parpadeo visible.

Control de velocidad del motor

Figure 6. Motor Speed Control

La PWM se utiliza comúnmente para controlar la velocidad de motores de corriente continua en ruedas robóticas, bombas, ventiladores, sistemas de transportes y actuadores de automatización. En lugar de cambiar directamente la tensión de alimentación, la PWM ajusta la potencia media entregada al motor. Los ciclos de trabajo más altos generalmente aumentan la velocidad del motor, mientras que los más bajos la reducen. Se requieren controladores externos de motor porque los pines GPIO de la Raspberry Pi no pueden accionar motores directamente de forma segura.

Control de posición de servo

Figure 7. Servo Position Control

Los servomotores utilizan pulsos de control repetitivos donde el ancho de pulso determina la posición en brazos robóticos, sistemas de cámara pan-tilt, vehículos RC y sistemas de automatización. Pequeños errores de sincronización pueden causar temblores, zumbidos o movimientos inestables, por lo que la sincronización estable de la PWM es importante para un control servo fiable.

Generación de señales de audio

Figure 8. Audio Signal Generation

El PWM Raspberry Pi puede generar tonos simples, alarmas, timbres y señales básicas de audio cambiando los pines GPIO en frecuencias audibles. La PWM es útil para una salida de sonido embebida sencilla, pero no puede sustituir completamente un DAC dedicado para aplicaciones de audio de alta calidad.

Aplicaciones industriales e IoT

Figure 9. Industrial and IoT Applications

La PWM es útil en sistemas industriales y IoT Raspberry Pi porque puede controlar salidas de hardware ajustables. Las aplicaciones habituales incluyen la agricultura inteligente, la monitorización ambiental, los sistemas HVAC, la automatización industrial y los sistemas de control IoT. La PWM controla frecuentemente ventiladores, bombas, válvulas, sistemas de iluminación y actuadores.

Raspberry Pi vs Arduino para PWM

Figure 10. Raspberry Pi vs Arduino for PWM

CategoríaRaspberry PiArduino
Sistema operativoEjecuta Linux OSEjecuta un firmware simple
Potencia de procesamientoMayor potencia de procesamiento para aplicaciones avanzadasMenor potencia de procesamiento pero optimizado para tareas de control
Temporización PWMMenos predecible debido a la multitarea del sistema operativoComportamiento PWM en tiempo real más predecible
LatenciaLatencia moderadaMenor latencia con respuesta de hardware más rápida
Control de hardwareAcceso indirecto al hardware a través del sistema operativo y bibliotecasAcceso directo al hardware
Estabilidad PWMBueno para PWM de propósito generalMejor para un control de motores estables y bucles de control
RedesExcelente soporte de redes e IoTRedes limitadas sin módulos adicionales
MultitareaPuede ejecutar servidores, scripts, bases de datos y múltiples aplicacionesCapacidad limitada de multitarea
ProgramaciónProgramación sencilla de alto nivel con PythonProgramación sencilla de bajo nivel con Arduino IDE
Electrónica para principiantesIdeal para principiantes con enfoque en softwareExcelente para principiantes en electrónica
Automatización inteligenteExcelente para sistemas de automatización inteligente conectadosBueno para automatización independiente
Control Motor en Tiempo RealRendimiento moderadoExcelente rendimiento
Cronometraje de precisiónPrecisión moderada en el tiempoExcelente precisión de tiempo
Mejores casos de usoSistemas IoT, automatización inteligente, monitorización remota, proyectos basados en LinuxMotores, servos, robótica, control embebido, PWM en tiempo real
Principal ventajaCombina PWM con software avanzado y redesProporciona un control PWM en tiempo real preciso y estable

Solución de problemas con Raspberry Pi PWM

ProblemaCausa posibleSolución recomendada
La señal no funcionaNumeración incorrecta de GPIOComprueba si el código utiliza BCM, físico u otro sistema de numeración.
La señal no funcionaCableado incorrectoRevisa de nuevo las conexiones GPIO, la colocación de las resistencias y la tierra compartida.
La señal no funcionaPin sin soporteConfirma si el pin seleccionado soporta PWM por hardware o software.
La señal no funcionaProblema de biblioteca o permisosVerifica la instalación de la librería GPIO, los permisos y los comandos de configuración.
Nerviosismo servoFuente de alimentación débilUsa una fuente de alimentación separada para el servo.
Nerviosismo servoFalta un terreno comúnConecta la tierra de la Raspberry Pi a la toma de tierra de la fuente de alimentación servo.
Nerviosismo servoInestabilidad PWM de softwareUsa hardware PWM o una biblioteca más estable como pigpio.
Nerviosismo servoRuido eléctricoAcorta los cables y mejora el filtrado de energía o la disposición del cableado.
Parpadeo LEDFrecuencia demasiado bajaAumenta la frecuencia de PWM hasta que el parpadeo deje de ser visible.
Parpadeo LEDMal cableadoComprueba los valores de las resistencias, las conexiones sueltas y la calidad del cableado.
Ruido o inestabilidad del motorFuente de alimentación débilUsa una fuente de alimentación externa para el motor en lugar de alimentar el motor desde GPIO.
Ruido o inestabilidad del motorComponentes de protección faltantesUtiliza un driver adecuado y añade componentes de protección como un diodo de vuelta cuando sea necesario.
Ruido o inestabilidad del motorFrecuencia incorrectaAjusta la frecuencia PWM para adaptarla al motor y al circuito de control.
Errores de pigpioDaemon no se ejecutaInicia o reinicia el demonio pigpio.
Errores de pigpioConflictos en GPIOComprueba si otro programa ya está usando el mismo pin GPIO.

Preguntas frecuentes [FAQ]

¿Por qué es importante la PWM en Raspberry Pi aunque los pines GPIO sean solo digitales?

PWM permite que los pines GPIO Raspberry Pi simulen un control similar al analógico cambiando rápidamente señales entre estados ALTO y BAJO. En lugar de cambiar el voltaje directamente, la PWM modifica el ciclo de trabajo para controlar la entrega media de potencia. Esto permite atenuar LEDs, ajustar la velocidad del motor, controlar la posición de los servomotores y gestionar ventiladores usando pines GPIO digitales estándar.

¿Cuándo debería usarse PWM por hardware en lugar de PWM por software en Raspberry Pi?

La PWM por hardware es mejor para aplicaciones que requieren una sincronización estable y una generación precisa de pulsos, como servos, controladores de motor, salida de audio y robótica. Como el hardware dedicado controla la señal, produce menos jitter y utiliza menos recursos de la CPU. El PWM por software suele ser suficiente para tareas más sencillas como el atenuado de LED o los indicadores de estado, donde los pequeños errores de temporización son menos perceptibles.

¿Por qué una frecuencia PWM incorrecta puede causar problemas en los proyectos de Raspberry Pi?

Diferentes dispositivos responden mejor a distintas frecuencias PWM. Si la frecuencia es demasiado baja, los LEDs pueden parpadear visiblemente, los motores pueden producir ruido o movimientos bruscos, y los servos pueden volverse inestables. Las frecuencias muy altas también pueden reducir la resolución de PWM o aumentar las demandas de procesamiento. Elegir la frecuencia correcta mejora el rendimiento, la suavidad y la fiabilidad.

¿Por qué los motores y servos nunca deberían conectarse directamente a los pines GPIO de la Raspberry Pi?

Los pines GPIO Raspberry Pi solo admiten señales lógicas de baja corriente de 3,3V y no pueden alimentar motores o servos de forma segura de forma segura. Los dispositivos de alta corriente pueden dañar pines GPIO, crear picos de tensión o causar un funcionamiento inestable. Los controladores externos, MOSFETs, circuitos H-bridge, diodos flyback y fuentes de alimentación separadas ayudan a proteger la Raspberry Pi y a mejorar la fiabilidad de las PWM.

¿Por qué Arduino suele ser mejor para un control preciso de PWM que Raspberry Pi?

Las placas Arduino están diseñadas para el control de hardware en tiempo real y ejecutan un firmware sencillo sin un sistema operativo multitarea. Esto permite una sincronización PWM más predecible, menor latencia y mejor estabilidad para motores, servos y bucles de control. Raspberry Pi es más potente en redes, aplicaciones Linux, sistemas IoT y automatización inteligente, pero la actividad en segundo plano de Linux puede afectar la precisión del tiempo de PWM.