5. Salidas PWM

Icono de vídeo de YouTube VÍDEO: PWM en Arduino para regular la intensidad de brillo de un LED

Nota

No todos los pines digitales se pueden usar con PWM, solamente los que se indican con una «onda»:

../_images/arduino-ft-08.png
PWM (Pulse Wide Modulation o Modulación de Ancho de Pulso)

Es una técnica que se utiliza para simular valores de distinta intensidad analógicos mediante pulsos o «parpadeos» de la señal:

../_images/arduino-ft-09.png

Código para encender un LED conectado en el pin 9 con una intensidad de 25 (la intensidad puede ir desde 0 hasta 255):

1analogWrite(9, 25);

Tarea PWM brillo

Monta el circuito de la figura:

../_images/arduino-ft-05.png

Realiza el mismo programa que el de las tareas anteriores, pero en vez de repetir las líneas con las mismas instrucciones cuatro veces, usa el bucle for( ).

Prueba a ir cambiando el número de repeticiones y los tiempos de encendido y apagado, verás cómo ahora es más rápido usando las variables y el bucle for( ).

Sería el código equivalente a:

../_images/arduino-ft-10.png

Ajuste de brillo con bucle for

Icono de vídeo de YouTube VÍDEO: Ajuste de brillo usando la variable «i» del bucle for()

Tarea PWM for()

Usando el bucle for(), programa el LED para que se encienda progresivamente de 0 a 255 con un retardo de 20 ms entre cambios de intensidad. Fíjate en la imagen, te servirá de guía:

../_images/arduino-ft-24.png

Figura 5.1La variable i aumenta de 1 en 1 (i++).

Sería el equivalente en código a los siguientes bloques:

../_images/arduino-ft-33.png

Tarea brillo sube baja

Usando el bucle for(), programa el LED para que se encienda progresivamente de 0 a 255 de 5 en 5 y luego de 255 a 0 de 5 en 5, con un retardo de 15 ms entre cambios de intensidad.

Fíjate en la imagen, te servirá de guía:

../_images/arduino-ft-35.png