5.4.2 Progetto 1.2 Breathing LED
1. Descrizione
Un “breathing LED” è un fenomeno in cui la luminosità di un LED cambia gradualmente da scuro a chiaro e ritorna a scuro, continuando così e dando l’illusione che il LED stia “respirando”. Tuttavia, come si controlla la luminosità di un LED?
Conviene sfruttare il PWM. Si controlla il rapporto tra il tempo in cui il segnale è a livello alto e quello in cui è a livello basso nell’unità di tempo: più tempo il livello alto è presente, maggiore è il valore PWM e più luminoso risulta il LED.

Forniamo il file di libreria per l’output PWM < analogwrite.h > per ESP32, quindi basta una semplice istruzione analogWrite(); per controllare l’output PWM.
2. Codice di test
#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. Risultato del test
Il LED si attenua e poi si illumina gradualmente, ciclicamente, come un respiro umano.