#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // Dirección I2C y dimensiones de la pantalla
byte entrada = 34;
//PRUEBA PARA VER SI COMPILA
int Q[]={12, 13, 14, 15};
boolean estado = false;
byte entrada2 = 26;
byte salida = 2;
void setup() {
lcd.init();
lcd.backlight();
pinMode(entrada, INPUT);
for (int cont=0; cont<4; cont++)
{
pinMode (Q[cont], OUTPUT);
}
pinMode(entrada2, INPUT);
pinMode(salida, OUTPUT);
}
void loop() {
if (estado == false){
for(int i=1; i<=16; i++)
{
lcd.setCursor(0,3);
lcd.print("VERIFICADOR = ");
lcd.print(i);
lcd.print(" ");
digitalWrite(Q[0],(i&1)/1);
digitalWrite(Q[1],(i&2)/2);
digitalWrite(Q[2],(i&4)/4);
digitalWrite(Q[3],(i&8)/8);
int lectura = analogRead(entrada);
if(lectura > 1500){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("DETECTADO");
lcd.setCursor(0,1);
lcd.print("PRODUCTO ");
lcd.print(i);
lcd.setCursor(0,2);
lcd.print("DESCONECTADO ");
lcd.setCursor(0,3);
lcd.print("ALARMA ENCENDIDA");
estado = true;
digitalWrite(salida , HIGH);
break;
}
else{
lcd.setCursor(0,0);
lcd.print("CORRECTO");
delay(10);
}
delay(10);
}
}
byte boton = digitalRead(entrada2);
if(estado == true && boton == 1){
estado = false;
lcd.clear();
digitalWrite(salida, LOW);
}
}
ERC Warnings
not1:IN: Input pin not driven
flop1:CLK: Clock driven by combinatorial logic