#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);
int pBuzzer = 3;
int AIRE = 8;
int SENSOR;
const int UMBRALUNO = 35;
const int UMBRALDOS = 200;
float TEMPERATURA;
void setup()
{
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(HIGH);
lcd.begin(16, 2);
lcd.clear();
pinMode(pBuzzer, OUTPUT);
Serial.begin(9600);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(A1,INPUT);
}
void loop()
{
SENSOR = analogRead(A0);
TEMPERATURA = ((SENSOR * 5000.0) / 1023) / 10;
delay(1000);
int adc_mq =analogRead(A1);
if(adc_mq < UMBRALDOS){
digitalWrite(9,HIGH);
}else{
digitalWrite(9,LOW);
}
if(adc_mq > UMBRALDOS){
digitalWrite(10,HIGH);
}else{
digitalWrite(10,LOW);
}
if(TEMPERATURA < UMBRALUNO){
digitalWrite(11,HIGH);
}else{
digitalWrite(11,LOW);
}
if(TEMPERATURA > UMBRALUNO){
digitalWrite(12,HIGH);
}else{
digitalWrite(12,LOW);
}
lcd.setCursor (0,0);
lcd.print("TESTEO ACTUAL:");
lcd.setCursor (0,1);
lcd.print(TEMPERATURA,1);
lcd.println("C");
Serial.print("Temperatura es:");
Serial.print(TEMPERATURA,1);
Serial.println("C");
Serial.print("Nivel de presencia de gas es:");
Serial.println(adc_mq);
lcd.setCursor(9,1);
lcd.print("LPG:");
lcd.print(adc_mq);
if ( TEMPERATURA > UMBRALUNO){
analogWrite(pBuzzer, 150);
}
else {
digitalWrite(pBuzzer,LOW);
}
if (( TEMPERATURA > UMBRALUNO) || (adc_mq > UMBRALDOS)){
analogWrite(AIRE,HIGH);
}
else {
digitalWrite(AIRE,LOW);
}
delay(1000);
}