#include <Wire.h> // Incluye la librería Wire para la comunicación I2C
#include <LiquidCrystal_I2C.h> // Incluye la librería LiquidCrystal_I2C
#define Red 6
#define Yellow 7
#define Green 5
#define Pot A0
#define On 8
#define Off 9
// Dirección I2C de la pantalla LCD
int lcdAddress = 0x27; // Puede variar según tu módulo I2C
// Crea una instancia de LiquidCrystal_I2C
LiquidCrystal_I2C lcd(lcdAddress, 16, 2); // esto se tiene que cambiar segun que tamaño tenga el lcd
void setup() {
// Inicializa la comunicación I2C
Wire.begin();
// Inicializa el LCD
lcd.init();
// Enciende la retroiluminación del LCD
lcd.backlight();
pinMode(Pot, INPUT);
pinMode(Red, OUTPUT);
pinMode(Yellow, OUTPUT);
pinMode(Green, OUTPUT);
lcd.display();
}
void loop() {
lcd.setCursor(0,0); //esto es para marcar de donde queres que arranque a escribir
lcd.setCursor(8,0);
lcd.print(analogRead(Pot));
delay(100);
lcd.setCursor(8,0);
lcd.print(" "); //esto es para borrar los numeros para que no se acumuler
if (analogRead(Pot) >= 0 && analogRead(Pot) <= 200)
{
digitalWrite(Red, HIGH);
}
else
{
digitalWrite(Red, LOW);
}
if (analogRead(Pot) >= 700 && analogRead(Pot) <= 1023)
{
digitalWrite(Red, HIGH);
}
if (analogRead(Pot) >= 200 && analogRead(Pot) <= 400)
{
digitalWrite(Yellow, HIGH);
}
else
{
digitalWrite(Yellow, LOW);
}
if (analogRead(Pot) >= 600 && analogRead(Pot) <= 700)
{
digitalWrite(Yellow, HIGH);
}
if (analogRead(Pot) >= 400 && analogRead(Pot) <= 600)
{
digitalWrite(Green, HIGH);
}
else
{
digitalWrite(Green, LOW);
}
if (digitalRead(Off) == LOW)
{
lcd.noDisplay();
}
if(digitalRead(On) == LOW)
{
lcd.display();
}
}
// el comando que no esta colocado es el lcd.clear(); que es para borrar todo lo que aparezca