Está en la página 1de 4

#include <Wire.

h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
//TEMP
int a;
int del=1000;
float temperature;
int B=3975;
float resistance;
//LUZ
const long A = 1000;
const int C = 15;
const int Rc = 10;

//Resistencia en oscuridad KO
//Resistencia a la luz (10 Lux) KO
//Resistencia calibracion KO

//int ledPin =6;


int ilum;
//ULTRA
long distancia;
long tiempo;
int potenciometro=A0 ;

void setup() {
// put your setup code here, to run once:
lcd.init();

// initialize the lcd

lcd.backlight();
Serial.begin(9600);
pinMode(9, OUTPUT); /*activacin del pin 9 como salida: para el pulso
ultrasnico*/

pinMode(8, INPUT); /*activacin del pin 8 como entrada: tiempo del rebote del
ultrasonido*/
pinMode(potenciometro, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int value = analogRead(potenciometro);
Serial.println(value);
if(value<340){
//PRUEBA LUZ
int sensorValue=analogRead(2);
ilum = ((long)sensorValue*A*10)/((long)C*Rc*(1024-sensorValue));
//ilum = (long)(sensorValue^2)*0.0003-0.1562*sensorValue+19.233;
lcd.setCursor(1,3);
lcd.println("Luz=");
lcd.println(sensorValue);
//lcd.setCursor(2,3);
//lcd.println("Ilum=");
//lcd.println(ilum);
delay(1000);
lcd.clear();
}
else{
if(value<680){
//PRUEBA TEMPERATURA
a=analogRead(A3);
resistance =(float)(1023-a)*1000/a;

temperature =1/(log(resistance/1000)/B+1/298.15)-273.15;
//Serial.println(temperature);
lcd.setCursor(3,0);
lcd.print("temp=");
lcd.print(temperature);
delay(1000);
lcd.clear();
}
else{
//PRUEBA DISTANCIA
digitalWrite(9,LOW); /* Por cuestin de estabilizacin del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envo del pulso ultrasnico*/
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH); /* Funcin para medir la longitud del pulso
entrante. Mide el tiempo que transcurrido entre el envo
del pulso ultrasnico y cuando el sensor recibe el rebote, es decir: desde
que el pin 12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*frmula para calcular la distancia
obteniendo un valor entero*/
/*Monitorizacin en centmetros por el monitor serial*/
//Serial.println("Distancia ");
//Serial.println(distancia);
//Serial.println(" cm");
lcd.setCursor(3,0);
lcd.print("dist=");
lcd.print(distancia);

lcd.print("cm");
delay(1000);
lcd.clear();
}
}
//delay(1000);
}