Documente Academic
Documente Profesional
Documente Cultură
h>
//#include <DHT_U.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
bool automatico;
int nivel;
void setup()
Serial.begin (9600);
automatico=1;
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
for(int c=0;c<20;c++)
lcd.scrollDisplayLeft();
delay(400);
lcd.scrollDisplayRight();
delay(400);
lcd.clear();
void loop()
{
//Modo manual o automatico
bool estadoled;
bool pulso6;
pulso6=digitalRead(6);
estadoled=digitalRead(11);
while (pulso6==1&&automatico==1&&estadoled==1)
lcd.setCursor(0,1);
automatico=0;
delay(500);
while (pulso6==0&&automatico==0&&estadoled==0)
lcd.setCursor(0,1);
automatico=1;
delay(500);
if (automatico==1) digitalWrite(11,1);
if (automatico==0) digitalWrite(11,0);
// ILUMINACIÓN
// LDR
int ldr;
int valorldr;
ldr=analogRead(1);
valorldr=map(ldr,1024,0,100,0);
Serial.println (ldr);
Serial.println (valorldr);
if(valorldr<=50&&automatico==1)
digitalWrite(8,1);
if (valorldr>50&&automatico==1)
digitalWrite(8,0);
//PULSO LUZ
bool salida8;
bool pulso5;
pulso5=digitalRead(5);
salida8=digitalRead(8);
if (pulso5==0&&salida8==0&&automatico==0)
digitalWrite(8,1);
delay(100);
lcd.setCursor(0,1);
delay(2000);
if (pulso5==0&&salida8==1&&automatico==0)
digitalWrite(8,0);
delay(100);
lcd.setCursor(0,1);
delay(2000);
Serial.println (pulso5);
Serial.println (salida8);
// TEMPERATURA
// TEMPERATURA
int temp;
int valortemp;
temp=digitalRead(13);
valortemp=map(temp,0,1024,0,1024);
Serial.println (temp);
Serial.println (valortemp);
if(automatico==1&&valortemp>=5)
digitalWrite(9,1);
if (automatico==1&&valortemp<5)
digitalWrite(9,0);
//DHT11
//Serial.print("Humedad: ");
//Serial.print(h);
//Serial.print(" %\t");
//Serial.print("Temperatura: ");
//Serial.print(t);
//Serial.print(" *C ");
//Serial.print(hic);
//Serial.println(" *C ");
//PULSO VENTILADOR
bool pulso3;
bool salida9;
salida9=digitalRead(9);
pulso3=digitalRead(3);
if (pulso3==0&&automatico==0&&salida9==0)
digitalWrite(9,1);
delay(100);
lcd.setCursor(0,1);
delay(2000);
if (pulso3==0&&salida9==1&&automatico==0)
digitalWrite(9,0);
lcd.setCursor(0,1);
delay(2000);
}
Serial.println (pulso3);
Serial.println (digitalRead(9));
//RIEGO
// HIGROMETRO
int humedad;
int valorhumedad;
humedad=analogRead(sensorPin);
valorhumedad=map(humedad,0,1024,100,0);
Serial.println (humedad);
if (humedad >= 1000) Serial.println (">> EL SENSOR ESTA DESCONECTADO O FUERA DEL
SUELO <<");
else if (humedad < 1000 && humedad >=600) Serial.println (">> EL SUELO ESTA SECO <<");
else if (humedad < 600 && humedad >= 370) Serial.println (">> EL SUELO ESTA HUMEDO
>>");
else if (humedad < 370) Serial.println (">> EL SENSOR ESTA PRÁCTICAMENTE EN AGUA <<");
if(automatico==1&&nivel==0&&humedad<=550)
digitalWrite(10,1);
if (automatico==1&&humedad>400)
digitalWrite(10,0);
int nivel;
bool nivelmap;
nivel=analogRead(3);
nivelmap=map(nivel,0,1024,100,0);
Serial.println (nivel);
delay(100);
//PULSO RIEGO
bool pulso4;
bool salida10;
salida10=digitalRead(10);
pulso4=digitalRead(4);
if (pulso4==0&&salida10==0&&automatico==0&&nivel==0)
digitalWrite(10,1);
delay(100);
lcd.setCursor(0,1);
delay(2000);
if (pulso4==0&&salida10==1&&automatico==0)
digitalWrite(10,0);
lcd.setCursor(0,1);
delay(2000);
if (pulso4==0&&salida10==0&&automatico==0&&nivel>0)
lcd.setCursor(0,1);
for(int c=0;c<15;c++)
lcd.scrollDisplayLeft();
delay(200);
lcd.clear();
Serial.println (pulso4);
Serial.println (digitalRead(10));
//LCD DATOS
if (pulso3==0&&automatico==1)
lcd.setCursor(0,1);
for(int c=0;c<15;c++)
lcd.scrollDisplayLeft();
delay(150);
lcd.clear();
if (pulso4==0&&automatico==1)
lcd.setCursor(0,1);
for(int c=0;c<15;c++)
lcd.scrollDisplayLeft();
delay(150);
lcd.clear();
}
if (pulso5==0&&automatico==1)
lcd.setCursor(0,1);
for(int c=0;c<15;c++)
lcd.scrollDisplayLeft();
delay(150);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("LX:"+String(valorldr)+"%"+"TA:"+String(valortemp)+"c"+"HT:"+String(valorhumedad)
+"%");
// lcd.setCursor(0,1);
//lcd.print("HT:"+String(valorhumedad)+"%");
//for(int c=0;c<21;c++)
//lcd.scrollDisplayLeft();
//delay(400);
}
}