Last active
June 15, 2016 23:50
-
-
Save fede1608/a32d6f6926d7301d541dcc4765e15506 to your computer and use it in GitHub Desktop.
Proyecto Estacionamiento Sistemas Embebidos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <LiquidCrystal.h> | |
LiquidCrystal lcd(2,3,4,5,6,7,10); | |
double distancia; | |
long tiempo; | |
double prevDist = 0; | |
void setup(){ | |
Serial.begin(9600); | |
pinMode(9, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/ | |
pinMode(13, OUTPUT); | |
pinMode(8, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/ | |
lcd.begin(16, 2); | |
lcd.setCursor(0,1); | |
lcd.write('z'); | |
} | |
void loop(){ | |
digitalWrite(9,LOW); /* Por cuestión de estabilización del sensor*/ | |
delayMicroseconds(2); | |
digitalWrite(9, HIGH); /* envío del pulso ultrasónico*/ | |
delayMicroseconds(10); | |
digitalWrite(9,LOW); | |
tiempo=pulseIn(8, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío | |
del pulso ultrasónico 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*/ | |
if(tiempo<190000 && tiempo!=223 && tiempo != 222 && tiempo!= 216){ | |
distancia= (0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/ | |
/*Monitorización en centímetros por el monitor serial*/ | |
Serial.print("Distancia "); | |
Serial.print(distancia); | |
Serial.println(" cm"); | |
// Serial.print("Tiempo "); | |
// Serial.print(tiempo); | |
// Serial.println("microseg"); | |
if(distancia>0 && distancia <=5){ | |
Serial.println("Espacio Ocupado"); | |
digitalWrite(13, HIGH); | |
}else if(distancia>5 && distancia <=12){ | |
digitalWrite(13, HIGH); | |
if(int(prevDist)>int(distancia)){ | |
Serial.println("Auto Entrando"); | |
}else if(int(prevDist)<int(distancia)){ | |
Serial.println("Auto Saliendo"); | |
}else{ | |
Serial.println("Espacio Ocupado"); | |
} | |
}else{ | |
Serial.println("Espacio Libre"); | |
digitalWrite(13, LOW); | |
} | |
prevDist = distancia; | |
delay(300); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment