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.

imagen36

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.