//librerias
//libreria del lcd
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
//LIBRERIAS DEL DS18B
#include <OneWire.h>
#include <DallasTemperature.h>
const int oneWireBus = 5; //definimos el pin que usara nuestro sensor
OneWire oneWire(oneWireBus);
DallasTemperature sensors(&oneWire);
#define led1 25
// POTENCIOMETRO
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
#define pot 13
//ntc
const float BETA = 3950;
#define ntcc 15
#define led 14
//variables
int analogValue;
float celsius;
float temperatureC;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
//SENSOR18B
sensors.begin();//activa el sensor
pinMode(led1, OUTPUT);
//POTENCIOMETRO
pinMode(pot, INPUT);//PIN DEL POTENCIOMETRO
LCD.init();
LCD.backlight();
//ntc
analogReadResolution(10);
pinMode(ntcc,INPUT);//pin del ntc
pinMode(led, OUTPUT);// pin del led
}
void loop() {
msj();
ntc();
potenciometro();
ds18b();
}
void msj(){
//LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("CONTROL DE SENSORES");
}
void ntc(){
//variables del ntc
analogValue = analogRead(ntcc);
celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
//monitor serial
Serial.print("Temp1: ");
Serial.print(celsius+0.01);
Serial.println(" ℃");
if(celsius>=30)
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
delay(100);
//lcd
lcd.setCursor(0,1);
lcd.print("Temp1:");
lcd.print(celsius+0.01);
}
void ds18b(){
lcd.setCursor(0, 3);
//variable temperatura ds18b20
sensors.requestTemperatures();
temperatureC = sensors.getTempCByIndex(0);
// lcd
lcd.print("Temp2: ");
if (temperatureC >= 40) {
lcd.print("NOVEDAD!!");
digitalWrite(led1, HIGH);
} else {
lcd.print ("S/N ");
digitalWrite(led1, LOW);
delay(100);
}
//monitor serial
Serial.print("temp2:");
Serial.print(temperatureC);
Serial.println("ºC ");
}
void potenciometro(){
//variable potenciometro
sensorValue = analogRead(pot);
//presentacion en lcd
LCD.setCursor(0,2);
LCD.print("POT: ");
LCD.print(sensorValue);
//monitor serial
sensorValue=analogRead(pot);
Serial.print("pot:");
Serial.println(sensorValue);
delay(100);
}