#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <sigu.h>
//https://www.automatismos-mdq.com.ar/blog/tools/LCD_ccg/lcd-ccg.html
struct{
int prt;
}ledR,ledY,ledG;
LiquidCrystal_I2C lcd(0x27, 16, 2);//crear un objeto lcd (DIRECCIÓN pantalla, Tamaño x, Tamño y)
const int analog_pin=13;
int valor_pot=0;
Dig icon;
void setup() {
lcd.clear();
lcd.init();//inicializar la pantalla lcd
lcd.begin(16,2);
lcd.backlight();//Encender la luz de fondo
ledR.prt = 17;
ledY.prt = 18;
ledG.prt = 19;
pinMode(ledR.prt, OUTPUT);
pinMode(ledY.prt, OUTPUT);
pinMode(ledG.prt, OUTPUT);
lcd.setCursor (0, 0);//poner el cursor en las coordenadas (x,y)
lcd.print("EVALUACION ");//muestra en la pantalla max 16 caracteres
lcd.write((uint8_t)1);
lcd.print("3");
lcd.setCursor (0, 1);//poner el cursor en las coordenadas (x,y)
lcd.print("CONTROL T");//muestra en la pantalla max 16 caracteres
lcd.write((uint8_t)2);
delay(3000);
lcd.clear();
}
void loop() {
lcd.clear();
valor_pot=analogRead(analog_pin);
lcd.setCursor (0, 0);//poner el cursor en las coordenadas (x,y)
lcd.print("TEMP:");
float lectura_temp=temperatura();
lcd.print(lectura_temp);
lcd.write((uint8_t)0);
lcd.print("C");
lcd.setCursor (0, 1);
lcd.print("Curr: ");
float lectura_curr=corriente();
lcd.print(lectura_curr);
lcd.write((uint8_t)3);
lcd.write((uint8_t)4);
if(lectura_temp<10){
digitalWrite(ledR.prt, LOW);
digitalWrite(ledY.prt, LOW);
digitalWrite(ledG.prt, HIGH);
}
else if (lectura_temp>10&&lectura_temp<50){
digitalWrite(ledG.prt, LOW);
digitalWrite(ledR.prt, LOW);
digitalWrite(ledY.prt, HIGH);
}
else{
digitalWrite(ledR.prt, LOW);
digitalWrite(ledY.prt, LOW);
digitalWrite(ledG.prt, HIGH);
}
delay(500);//Esperamos 500 mili segundo antes de repetir el loop
}
float temperatura(){
//Temperatura de 10 a 150 ºC
//0.039072 · X - 10
float valor=0.039072 * valor_pot - 10;
return valor;
}
float corriente(){
//corriente de 4 a 20
//0.0039072 · X +4
float valor_curr=0.0039072 * valor_pot +4;
return valor_curr;
}