#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define RED_PIN 9
#define GREEN_PIN 10
#define BLUE_PIN 11
#define BUTTON_PIN 2
int buttonState = 0;
int lastButtonState = 0;
int counter = 0;
int colorIndex = 0;
void setup() {
pinMode(BUTTON_PIN, INPUT);
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
lcd.begin(16, 2);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Contador: ");
lcd.setCursor(9, 0);
lcd.print(counter);
lcd.setCursor(0, 1);
lcd.print("Color: nada");
}
void loop() {
buttonState = digitalRead(BUTTON_PIN);
if (buttonState == HIGH && lastButtonState == LOW) {
counter++;
colorIndex = counter % 3;
lcd.setCursor(9, 0);
lcd.print(" ");
lcd.setCursor(9, 0);
lcd.print(counter);
changeLEDColor(colorIndex);
delay(200);
}
lastButtonState = buttonState;
}
void changeLEDColor(int index) {
lcd.setCursor(7, 1);
lcd.print(" ");
lcd.setCursor(7, 1);
switch (index) {
case 0;
analogWrite(RED_PIN, 225);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 0);
lcd.print("Rojo");
break;
case 1:
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 225);
analogWrite(BLUE_PIN, 0);
lcd.print("Verde");
break;
case 2:
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 225);
lcd.print("Azul");
break;
}
}