#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 17
LiquidCrystal lcd(2,15,11,10,9,13);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float tempC = 0;
char grados=223;
float set_temp=18 ;
const int potPin = 34;// Potentiometer is connected to GPIO 34 (Analog ADC1_CH6)
int potValue = 0;
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()
{
pinMode(13, INPUT);
pinMode(3, OUTPUT);
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);
}
/*
// variable for storing the potentiometer value
void loop() {
Serial.println(potValue);
delay(1000);
}
*/
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, 1 decimal
lcd.setCursor(11,1);
lcd.print(set_temp,1);
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(3, HIGH); //Si la T.ajustada es mayor conectar rele
}
else
{
digitalWrite(3,LOW);
}
}