#include <LiquidCrystal_I2C.h>
#include "Escalamiento.h"
Escalamiento Nivel,Corriente;
LiquidCrystal_I2C lcd(0x27,16,2);
const int Potenciometro=15;
int Valor_Analogo=2;
int Verde = 17;
int Amarillo = 18;
int Rojo = 19;
int Pulsador = 0;
float Valor_Nivel=0;
float Valor_Corriente=0;
void IRAM_ATTR continuar(){
lcd.setCursor(0,0);
lcd.print("Bienvenido");
lcd.setCursor(0,1);
lcd.print("Ev Numero 3");
delay(1000);
lcd.clear();
digitalWrite(Verde, LOW);
digitalWrite(Amarillo, LOW);
digitalWrite(Rojo, LOW);
}
void IRAM_ATTR emergencia(){
digitalWrite(Verde, HIGH);
digitalWrite(Amarillo, HIGH);
digitalWrite(Rojo, HIGH);
lcd.clear();
attachInterrupt(digitalPinToInterrupt(Pulsador),continuar,RISING);
}
void setup() {
pinMode(Verde, OUTPUT);
pinMode(Amarillo, OUTPUT);
pinMode(Rojo, OUTPUT);
pinMode(Pulsador, INPUT);
lcd.clear();
lcd.init();
lcd.begin(16,2);
lcd.backlight();
Serial.begin(115200);
delay(1000);
lcd.setCursor(0,0);
lcd.print("Bienvenido");
lcd.setCursor(0,1);
lcd.print("Ev Numero 3");
delay(1000);
lcd.clear();
attachInterrupt(digitalPinToInterrupt(Pulsador),emergencia,FALLING);
}
void loop() {
Valor_Analogo=analogRead(Potenciometro);
Serial.println(Valor_Analogo);
Nivel.Entrada_A(Valor_Analogo)
Nivel.Minimo(0);
Nivel.Maximo(100);
Nivel.Escal(Valor_Nivel);
Corriente.Entrada_A(Valor_Analogo)
Corriente.Minimo(4);
Corriente.Maximo(20);
Corriente.Escal(Valor_Corriente);
lcd.setCursor(0,0);
lcd.print("Nivel: ");
lcd.print(Valor_Nivel);
lcd.setCursor(0,1);
lcd.print("Corriente: ");
lcd.print(Valor_Corriente);
delay(200);
if (Valor_Nivel <=20){
digitalWrite(Verde, HIGH);
digitalWrite(Amarillo, LOW);
digitalWrite(Rojo, LOW);
}
if (Valor_Nivel<=60 and Valor_Nivel>20){
digitalWrite(Verde, LOW);
digitalWrite(Amarillo, HIGH);
digitalWrite(Rojo, LOW);
}
if (Valor_Nivel >60){
digitalWrite(Verde, LOW);
digitalWrite(Amarillo, LOW);
digitalWrite(Rojo, HIGH);
}
}