// Incluimos la librería para ESP32
#include <Arduino.h>
// Definimos los pines para el LED RGB
const int pinRojo = 18;
const int pinVerde = 19;
const int pinAzul = 21;
void setup() {
// Inicializamos el puerto serie
Serial.begin(9600);
// Configuramos los pines del LED RGB como salidas
pinMode(pinRojo, OUTPUT);
pinMode(pinVerde, OUTPUT);
pinMode(pinAzul, OUTPUT);
}
void loop() {
// Variable para almacenar la entrada del puerto serie
String entrada = "";
// Esperamos a que llegue una entrada por el puerto serie
while (!Serial.available()) {
delay(100);
}
// Leemos la entrada del puerto serie
entrada = Serial.readStringUntil('\n');
// Verificamos si la entrada tiene el formato correcto
if (entrada.startsWith("R:") && entrada.indexOf(", G:") != -1 && entrada.indexOf(", B:") != -1) {
// Extraemos los valores de rojo, verde y azul
int valorRojo = entrada.substring(2, entrada.indexOf(", G:")).toInt();
int valorVerde = entrada.substring(entrada.indexOf(", G:") + 4, entrada.indexOf(", B:")).toInt();
int valorAzul = entrada.substring(entrada.indexOf(", B:") + 4).toInt();
// Establecemos los valores de los pines del LED RGB
analogWrite(pinRojo, valorRojo);
analogWrite(pinVerde, valorVerde);
analogWrite(pinAzul, valorAzul);
// Esperamos 4 segundos
delay(4000);
// Apagamos el LED RGB
analogWrite(pinRojo, 0);
analogWrite(pinVerde, 0);
analogWrite(pinAzul, 0);
} else {
// Si la entrada no tiene el formato correcto, mostramos un mensaje de error
Serial.println("Formato de entrada incorrecto. Debe ser: R:xxx, G:xxx, B:xxx");
}
}