// Librería para el ESP32
#include <Arduino.h>
// Definición de los pines GPIO
const int pinLED1 = 23;
const int pinLED2 = 22;
const int pinLED3 = 21;
const int pinLED4 = 19;
const int pinLED5 = 18;
const int pinLED6 = 17;
const int pinLED7 = 16;
// Definición de la frecuencia de PWM (en Hz)
const int pwmFrequency = 5000;
void setup() {
// Configuración de los pines GPIO como salidas
pinMode(pinLED1, OUTPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinLED3, OUTPUT);
pinMode(pinLED4, OUTPUT);
pinMode(pinLED5, OUTPUT);
pinMode(pinLED6, OUTPUT);
pinMode(pinLED7, OUTPUT);
// Configuración de la frecuencia de PWM
ledcSetup(0, pwmFrequency, 8); // Canal 0, resolución de 8 bits
ledcSetup(1, pwmFrequency, 8); // Canal 1, resolución de 8 bits
ledcSetup(2, pwmFrequency, 8); // Canal 2, resolución de 8 bits
ledcSetup(3, pwmFrequency, 8); // Canal 3, resolución de 8 bits
ledcSetup(4, pwmFrequency, 8); // Canal 4, resolución de 8 bits
ledcSetup(5, pwmFrequency, 8); // Canal 5, resolución de 8 bits
ledcSetup(6, pwmFrequency, 8); // Canal 6, resolución de 8 bits
// Asignación de los canales PWM a los pines GPIO
ledcAttachPin(pinLED1, 0); // LED1 se conecta al canal 0
ledcAttachPin(pinLED2, 1); // LED2 se conecta al canal 1
ledcAttachPin(pinLED3, 2); // LED3 se conecta al canal 2
ledcAttachPin(pinLED4, 3); // LED4 se conecta al canal 3
ledcAttachPin(pinLED5, 4); // LED5 se conecta al canal 4
ledcAttachPin(pinLED6, 5); // LED6 se conecta al canal 5
ledcAttachPin(pinLED7, 6); // LED7 se conecta al canal 6
}
void loop() {
// Enciende y apaga los LEDs con diferentes niveles de brillo
for (int brightness = 0; brightness <= 255; brightness++) {
ledcWrite(0, brightness); // Establece el brillo del LED1
ledcWrite(1, brightness); // Establece el brillo del LED2
ledcWrite(2, brightness); // Establece el brillo del LED3
ledcWrite(3, brightness); // Establece el brillo del LED4
ledcWrite(4, brightness); // Establece el brillo del LED5
ledcWrite(5, brightness); // Establece el brillo del LED6
ledcWrite(6, brightness); // Establece el brillo del LED7
// Retardo aleatorio entre 10 y 50 milisegundos
delay(random(10, 51));
}
for (int brightness = 255; brightness >= 0; brightness--) {
ledcWrite(0, brightness); // Establece el brillo del LED1
ledcWrite(1, brightness); // Establece el brillo del LED2
ledcWrite(2, brightness); // Establece el brillo del LED3
ledcWrite(3, brightness); // Establece el brillo del LED4
ledcWrite(4, brightness); // Establece el brillo del LED5
ledcWrite(5, brightness); // Establece el brillo del LED6
ledcWrite(6, brightness); // Establece el brillo del LED7
// Retardo aleatorio entre 10 y 50 milisegundos
delay(random(10, 51));
}
}