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.

LED che respira

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.