//EDY GABRIEL BACA CANALES
#include <Servo.h>
#include <LiquidCrystal.h>
const int trigPin = 2;
const int echoPin = 3;
const int ledPin = 4;
Servo servoMotor;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
long duracion;
float distancia;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
servoMotor.attach(5);
servoMotor.write(0);
lcd.begin(16, 2);
}
void loop() {
// Pulso ultrasónico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duracion = pulseIn(echoPin, HIGH);
distancia = duracion * 0.034 / 2;
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distancia: ");
lcd.print(distancia);
lcd.print("cm");
if (distancia < 15) {
Serial.println("Acceso Permitido");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Acceso Permitido");
digitalWrite(ledPin, HIGH);
servoMotor.write(90);
delay(3000);
servoMotor.write(0);
digitalWrite(ledPin, LOW);
} else {
Serial.println("Esperando Usuario");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Esperando Usuario");
}
delay(500);
}