#define RGB_RED_PIN GPIO_NUM_3
#define RGB_GREEN_PIN GPIO_NUM_9
#define RGB_BLUE_PIN GPIO_NUM_1
// Función para establecer el color del LED RGB (para LED de Cátodo Común)
void setRgbColor(bool red, bool green, bool blue) {
digitalWrite(RGB_RED_PIN, red ? HIGH : LOW);
digitalWrite(RGB_GREEN_PIN, green ? HIGH : LOW);
digitalWrite(RGB_BLUE_PIN, blue ? HIGH : LOW);
}
void setup() {
Serial.begin(115200);
Serial.println(F("Iniciando show de luces RGB aleatorias..."));
pinMode(RGB_RED_PIN, OUTPUT);
pinMode(RGB_GREEN_PIN, OUTPUT);
pinMode(RGB_BLUE_PIN, OUTPUT);
// Inicializa el generador de números aleatorios.
// Usamos analogRead(algún pin no conectado) para una mejor aleatoriedad.
randomSeed(analogRead(GPIO_NUM_0)); // GPIO_NUM_0 es un pin analógico disponible
}
void loop() {
// Genera tres números aleatorios (0 o 1) para cada color
int randomRed = random(2); // 0 o 1
int randomGreen = random(2); // 0 o 1
int randomBlue = random(2); // 0 o 1
// Establece el color del LED RGB
setRgbColor(randomRed, randomGreen, randomBlue);
// Muestra el color actual en el Monitor Serial
Serial.print(F("Color aleatorio: R="));
Serial.print(randomRed);
Serial.print(F(", G="));
Serial.print(randomGreen);
Serial.print(F(", B="));
Serial.println(randomBlue);
delay(1000); // Cambia de color cada 1 segundo
}