Skip to content

Instantly share code, notes, and snippets.

@fede1608
Last active June 15, 2016 23:50
Show Gist options
  • Save fede1608/a32d6f6926d7301d541dcc4765e15506 to your computer and use it in GitHub Desktop.
Save fede1608/a32d6f6926d7301d541dcc4765e15506 to your computer and use it in GitHub Desktop.
Proyecto Estacionamiento Sistemas Embebidos
#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