5.4.2 Proyecto 1.2 LED respiratorio
1. Descripción
Un «LED respiratorio» es un fenómeno donde el brillo de un LED cambia suavemente de oscuro a brillante y vuelve a oscuro, repitiéndose y dando la ilusión de que el LED está respirando. Sin embargo, ¿cómo controlar el brillo del LED?
Tiene sentido aprovechar PWM. Se controla la salida de los niveles alto y bajo por unidad de tiempo; cuanto más tiempo ocupa el nivel alto, mayor es el valor PWM y más brillante estará el LED.

Proporcionamos el archivo de biblioteca de salida PWM <analogwrite.h> para ESP32, por lo tanto con una simple instrucción analogWrite(); se puede controlar la salida PWM.
2. Código de prueba
#include <Arduino.h>
#define led_y 12 // Define LED pin
void setup()
{
pinMode(led_y, OUTPUT); // Set pin as output mode
}
void loop()
{
for(int i = 0; i < 255; i++) // For loop: increment variable i until it reaches 255
{
analogWrite(led_y, i); // PWM output to control LED brightness
delay(3);
}
for(int i = 255; i > 0; i--) // For loop: decrement variable i until it reaches 0
{
analogWrite(led_y, i);
delay(3);
}
}
3. Resultado de la prueba
El LED se atenúa y luego se enciende gradualmente, cíclicamente, como la respiración humana.