#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inicializa la pantalla de cristal líquido (LCD) en la dirección I2C 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Define los pines digitales que se van a leer y los pines de los LED que se van a encender o apagar
int pin1 = 2;
int pin2 = 3;
int pin3 = 4;
int led1 = 5;
int led2 = 6;
int led3 = 7;
void setup() {
// Inicializa la conexión I2C
Wire.begin();
// Inicializa la pantalla de cristal líquido
lcd.init();
// Enciende la retroiluminación de la pantalla de cristal líquido
lcd.backlight();
// Configura los pines como entradas y los LED como salidas
pinMode(pin1, INPUT);
pinMode(pin2, INPUT);
pinMode(pin3, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
// Lee el estado de las tres entradas digitales
int estado1 = digitalRead(pin1);
int estado2 = digitalRead(pin2);
int estado3 = digitalRead(pin3);
// Escribe los estados en la pantalla de cristal líquido
lcd.setCursor(5, 0);
lcd.print("Estados:");
lcd.setCursor(3, 1);
lcd.print("Salida 1: ");
lcd.print(estado1);
lcd.print(" Salida 2: ");
lcd.print(estado2);
lcd.print(" Salida 3: ");
lcd.print(estado3);
// Desplaza el contenido de la pantalla hacia la izquierda
lcd.scrollDisplayLeft();
// Enciende o apaga los LED según los estados de las entradas digitales
digitalWrite(led1, estado1);
digitalWrite(led2, estado2);
digitalWrite(led3, estado3);
// Espera 500 milisegundos antes de volver a leer los estados de las entradas digitales
delay(100);
}