#include <Arduino.h>
#include <LiquidCrystal.h>
// Definiciones de pines
#define pinRojo 15
#define pinVerde 19
#define pinAzul 18
#define RS 25
#define EN 12
#define D4 27
#define D5 32
#define D6 2
#define D7 4
// Inicialización de la pantalla LCD
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
// Definición de colores RGB
const int colors[][3] = {
{255, 0, 0}, // Rojo
{0, 255, 0}, // Verde
{0, 0, 255}, // Azul
{255, 255, 0}, // Amarillo
{0, 255, 255}, // Cian
{255, 0, 255}, // Magenta
{255, 165, 0}, // Naranja
{128, 0, 128}, // Morado
{0, 128, 0}, // Verde oscuro
{102, 0, 0}, // vino
{204, 0, 153} // fucsia
};
void setup() {
// Configuración de los pines del LED RGB
pinMode(pinRojo, OUTPUT);
pinMode(pinVerde, OUTPUT);
pinMode(pinAzul, OUTPUT);
// Inicialización de la pantalla LCD
lcd.begin(16, 2);
// Mostrar mensaje de inicio en la pantalla
lcd.setCursor(0, 0);
lcd.print("LED RGB Colores"); //
delay(3000);
lcd.clear();
}
void loop() {
for (int i = 0; i < 11; i++) {
// Borrar la pantalla LCD
lcd.clear();
// Mostrar el nombre del color en la primera línea
lcd.setCursor(0, 0);
lcd.print("Color: ");
lcd.print(getColorName(i));
// Mostrar el número del color en la segunda línea
lcd.setCursor(0, 1);
lcd.print("RGB: ");
lcd.print(colors[i][0]);
lcd.print(", ");
lcd.print(colors[i][1]);
lcd.print(", ");
lcd.print(colors[i][2]);
// Cambiar el LED RGB al color correspondiente
analogWrite(pinRojo, colors[i][0]);
analogWrite(pinVerde, colors[i][1]);
analogWrite(pinAzul, colors[i][2]);
delay(3000);
}
}
const char* getColorName(int index) {
switch (index) {
case 0: return "1 Rojo";
case 1: return "2 Verde";
case 2: return "3 Azul";
case 3: return "4 Amarillo";
case 4: return "5 Cian";
case 5: return "6 Magenta";
case 6: return "7 Naranja";
case 7: return "8 Morado";
case 8: return "9 Verde oscuro";
case 9: return "10 vino";
case 10: return "11 fucsia";
default: return "Desconocido";
}
}