#include <LiquidCrystal.h>
// Pines del LCD
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#define R 6
#define G 7
#define B 8
#define btnA 1
int Color = 0;
int ColorAnterior = -1;
int ValorP = 0;
void setup() {
lcd.begin(16, 2); // Inicializar LCD 16x2
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
pinMode(btnA, INPUT);
lcd.clear();
lcd.setCursor(0, 0);
}
void loop() {
ValorP = analogRead(A0);
if (digitalRead(btnA) == 1) {
delay(200);
Color = (Color + 1);
if (digitalRead(Color)>3){
Color=0;
}
}
if (digitalRead(btnA) == 0) {
Color=0;
}
if (Color != ColorAnterior) {
if (Color == 1) { // Rojo
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
lcd.setCursor(0, 1);
lcd.print("Color: Rojo ");
}
else if (Color == 2) { // Verde
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
digitalWrite(B, LOW);
lcd.setCursor(0, 1);
lcd.print("Color: Verde ");
}
else if (Color == 3) { // Azul
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
lcd.setCursor(0, 1);
lcd.print("Color: Azul ");
}
else {
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
lcd.setCursor(0, 1);
lcd.print("Color: Apagado");
}
}
lcd.setCursor(0, 0);
String mensaje = "Intensidad: " + String(ValorP);
lcd.print(mensaje + " ");
delay(100);
}