#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 32
// Potentiometer is connected to GPIO 34 (Analog ADC1_CH6)
const int potPin = 34;
// variable for storing the potentiometer value
int potValue = 0;
float set_temp ;
const int rele=4;
LiquidCrystal lcd(2,15,27,14,12,13);//real=2,15,11,10,9,13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float tempC = 0;
char grados=223;
byte Alien[] = {
B11111,
B10101,
B11111,
B11111,
B01110,
B11010,
B00011,
B00000
};
byte Blanco[] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000
};
byte Alien2[] = {
B11111,
B10101,
B11111,
B11111,
B01110,
B01011,
B11000,
B00000
};
void setup()
{
//digitalWrite(rele,LOW);
pinMode(13, INPUT);
pinMode(3, OUTPUT);
pinMode(rele, OUTPUT); // Configurar el pin rele como salida
sensors.begin(); //Inicializa los sensores
lcd.begin(20, 4); //Inicializa la librería
lcd.clear();
lcd.setCursor(1,0); //Columna=1,Fila=0
lcd.print("ACTUAL T:");
lcd.setCursor(16,0);
lcd.print(grados);
lcd.print("C");
lcd.setCursor(1,1);
lcd.print("AJUSTE T:");
lcd.setCursor(16,1);
lcd.print(grados);
lcd.print("C");
Serial.begin (9600);
lcd.createChar(0, Alien);
lcd.createChar(2, Alien2);
lcd.createChar(1,Blanco);
}
void loop()
{
potValue = analogRead(potPin); // Reading potentiometer value
set_temp=map(potValue,0,1023,15,26); //Ajuste entre 15 y 26 grados
sensors.requestTemperatures(); // Mide la temperatura
tempC = sensors.getTempCByIndex(0);
Serial.println(tempC);
Serial.println(set_temp);
lcd.setCursor(11,0);
lcd.print(tempC,1); //Imprime el valor leido con 1 decimal
lcd.setCursor(11,1);
lcd.print(set_temp,1);
// Reading potentiometer value
potValue = analogRead(potPin);
set_temp=map(potValue,0,4095,15,26); //Ajuste entre 15 y 26 grados
Serial.println(set_temp);
delay(1000);
//marciano
for(int i = 0; i< 20; i++)
{
lcd.setCursor(i,4);
lcd.write(byte(0));
delay(300);
lcd.setCursor(i,4);
lcd.write(byte(2));
delay(300);
lcd.setCursor(i,4);
lcd.write(byte(1));
}
if(set_temp>tempC)
{
digitalWrite(rele, HIGH); //Si la T.ajustada es mayor conectar rele
}
else
{
digitalWrite(rele,LOW);
}
}