La Modulación por Ancho de Pulso, o en inglés Pulse Width Modulation (PWM), te permite dar comportamientos analógicos a los dispositivos digitales, tales como LEDs. Esto significa que en lugar de que un LED esté simplemente encendido o apagado, puedes controlar su intensidad o brillo.

Pasos

Para esta actividad, puedes utilizar el circuito del último paso.

1. Abre un nuevo archivo en Thonny y agrega el siguiente código.

from machine import Pin, PWM

from time import sleep

pwm = PWM(Pin(15))

pwm.freq(1000)

while True:

    for duty in range(65025):

pwm.duty_u16(duty)

sleep(0.0001)

for duty in range(65025, 0, -1):

pwm.duty_u16(duty)

sleep(0.0001)

2. Guarda y ejecuta el archivo. Deberías ver el pulso del LED cambiando de brillante a tenue, en un ciclo continuo.

La frecuencia ( pwm.freq) le dice a Raspberry Pi Pico con qué frecuencia se debe encender y apagar el LED.

El ciclo de trabajo (duty cycle) le dice al LED cuánto tiempo debe estar encendido cada vez.

El duty indica la relación entre el estado alto y estado bajo en cada ciclo. Para saber más sobre PWM puedes consultar nuestro blog: ¿Qué es PWM y cómo usarlo?

Para Raspberry Pi Pico en MicroPython, el duty puede variar de 0 a 65025. 65025 sería el 100% del tiempo, por lo que el LED permanecería brillante. Un valor de alrededor 32512 indicaría que debería estar encendido la mitad del tiempo.

3. Juega con los valores pwm.freq() y los valores pwm.duty_u16, así como el período de tiempo para el sleep, con el cual controlas el tiempo de espera entre una instrucción y otra (dormido), para tener una idea de cómo puede ajustar el brillo y el ritmo del LED parpadeante.

4. Guarda el proyecto una vez acabes.

<--VOLVER A CLASE PREVIA

SIGUIENTE CLASE -->