const int pin_rojo = 8; // Número de PIN que le corresponde al LED ROJO
const int pin_verde = 9; // Número de PIN que le corresponde al LED VERDE
const int pin_azul = 10; // Número de PIN que le corresponde al LED AZUL
int rojo, verde, azul; // Almacenan la intensidad de cada color.
String comando; // Almacena el comando que se introduzca.
// Esta función corre una sola vez al encender la Arduino, y se utiliza para definir las configuraciones iniciales.
void setup()
{
// Aquí se define el comportamiento de cada PIN como 'salida' de señal.
pinMode(pin_rojo, OUTPUT);
pinMode(pin_verde, OUTPUT);
pinMode(pin_azul, OUTPUT);
// Con esta función se inicia la comunicación necesaria para poder enviar mensajes del arduino a la computadora (consola).
Serial.begin(9600);
}
// Esta función corre una y otra vez hasta el infinito
void loop()
{
// Revisamos si la computadora se ha comuncado con nuestro programa.
while (Serial.available() > 0)
{
// Leemos y almacenamos el comando introducido.
comando = Serial.readString();
limpiaComando(&comando);
Serial.println(comando);
// Revisamos si el comando coincide con algún color.
// ____________________________________________________________________________________________________________________
if (comando.equalsIgnoreCase("rojo"))
{
ponColor(255, 0, 0);
}
else if (comando.equalsIgnoreCase("verde"))
{
ponColor(0, 255, 0);
}
else if (comando.equalsIgnoreCase("azul"))
{
ponColor(0, 0, 255);
}
else
{
ponColor(0, 0, 0);
}
// ____________________________________________________________________________________________________________________
// LISTA DE COLORES
// ******************************
// Cyan = Verde y Azul
// Magenta = Rojo y Azul
// Amarillo = Rojo y Verde
// Blanco = Rojo, Verde y Azul
// Negro = Todos apagados
// ******************************
}
}
// Quitamos cualquier carácter que pueda provocar ruido cuando analizemos el comando.
void limpiaComando(String * texto)
{
texto->trim();
texto->replace('\n', '\0');
texto->replace('\r', '\0');
}
// Con esta función aplicamos la intensidad del color a cada LED.
void ponColor(int rojo, int verde, int azul)
{
analogWrite(pin_rojo, rojo);
analogWrite(pin_verde, verde);
analogWrite(pin_azul, azul);
}
//Siguiente explicación: Carga (upload) y ejecución del programa en Arduino