#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
int led1 =5;
int led2 =17;
int led3 =16;
int led4 =4;
int pulsador1 =15;
int pulsador2 =2;
int estado;
// Pines para el sensor HC-SR04
const int trigPin = 18;
const int echoPin = 19;
long tiempo;
int distancia;
void setup() {
lcd.init();
lcd.backlight();
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(pulsador1, INPUT);
pinMode(pulsador2, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() { //Distancia que marca el sensor ultrasonico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
tiempo = pulseIn(echoPin, HIGH);
distancia = tiempo / 58.2;
Serial.print("DISTANCIA:");
Serial.println(distancia);
delay(1000);
lcd.setCursor(0, 0);
lcd.print("DISTANCIA: ");
lcd.print(distancia);
lcd.print(" ");
lcd.setCursor(0, 1);
if (distancia < 50) {
digitalWrite(led1, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led2, LOW);
lcd.print("LED VERDE ON");
}
else if (distancia > 50 && distancia < 100) {
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led1, LOW);
lcd.print("LED AMARILLO ON");
}
else if (distancia > 100) {
digitalWrite(led3, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led1, LOW);
lcd.print("LED ROJO ON");
}
else {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
lcd.print(" ");
}
//lED Azul
if (distancia > 100 && digitalRead(pulsador1) == LOW) {
digitalWrite(led4, HIGH);
}
else if (distancia < 50 && digitalRead(pulsador2) == LOW) {
digitalWrite(led4, LOW);
}
}