Apuntes de Arduino
Apéndice: PWM (Modulación por anchura de pulso)
La Modulación por Ancho de Pulso (PWM = Pulse Width Modulation) es una técnica para simular
un nivel de tensión analógico con una señal digital. El control digital se usa para crear una onda
cuadrada, una señal que conmuta constantemente entre encendido y apagado. Este patrón de
encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 V (siempre encendido)
simplemente variando la proporción de tiempo entre encendido y apagado. A la duración del
tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analógico,
cambiamos, o modulamos, ese ancho de pulso. Si repetimos este patrón de encendido-apagado
lo suficientemente rápido, por ejemplo con un LED, el resultado es como si la señal adoptara un
valor analógico entre 0 y 5 V, controlando el brillo del LED.
En el gráfico adjunto las líneas verdes representan un periodo regular que, con Arduino es de
unos 2 milisegundos cada uno. La llamada a la función analogWrite() debe ser en la escala desde
0 a 255, siendo 255 el 100% de ciclo (siempre encendido), el valor 127 será el 50% del ciclo (la
mitad del tiempo encendido), etc.
El ejemplo "Fading" de Arduino demuestra el uso de una salida analógica (PWM) para atenuar y
aumentar la luminosidad de un LED. Está disponible en la opción "File->Sketchbook->Examples-
>Analog" del menú del software de Arduino.
35
Apuntes de Arduino. Tecnología