// Hashly Marihec Sosa Zepeda
#include <Servo.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
Servo barrera;
const int trigPin = 2;
const int echoPin = 3;
const int ledVerde = 4;
long duracion;
float distancia;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledVerde, OUTPUT);
barrera.attach(5);
barrera.write(0);
lcd.begin(16, 2);
lcd.print("Sistema Listo");
delay(2000);
lcd.clear();
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duracion = pulseIn(echoPin, HIGH);
distancia = duracion * 0.034 / 2;
if (distancia < 15) {
barrera.write(90);
digitalWrite(ledVerde, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Acceso");
lcd.setCursor(0, 1);
lcd.print("Permitido");
delay(3000);
barrera.write(0);
digitalWrite(ledVerde, LOW);
} else {
lcd.setCursor(0, 0);
lcd.print("Esperando");
lcd.setCursor(0, 1);
lcd.print("Usuario ");
}
delay(200);
}