#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define Trigger 13 // Trigger en el pin 13
#define Echo 12 // Echo en el pin 12
void setup() {
//configración inicial
Serial.begin(9600); // monitor de salida
pinMode(Trigger, OUTPUT); // definimos el pin trigger salida
pinMode(Echo, INPUT); // definimos el pin echo como entrada
digitalWrite(Trigger, LOW); // Iniciamos el pin con 0
lcd.init(); // initialize the lcd
lcd.backlight(); //Encendemos la luz de fondo.
pinMode(8, OUTPUT);//led rojo
pinMode(9, OUTPUT);//led amarillo
pinMode(10, OUTPUT);//led verde
}
void loop() {
// código principal, ejecutable
long t; // variable tiempo que demora en llegar el eco
long d; // variable distancia en centimetros
digitalWrite(Trigger, HIGH); // Mandamos un pulso a Trigger
delayMicroseconds(10); // Con un delay de 10us
digitalWrite(Trigger, LOW);
t = pulseIn(Echo,HIGH); // enconramos el ancho del pulso
d = t/59; // hacemos la relación D/T
//Si la distancia es menor a 10cm
lcd.clear(); // clear display
lcd.setCursor(0, 0); // move cursor to (0, 0)
lcd.print("DISTANCIA"); // print message at (0, 0)
lcd.setCursor(0, 1); // move cursor to (0, 1)
lcd.print(d); //print message at (0, 1)
delay(1000);
/*if(d>=40){
digitalWrite(10, HIGH);// verde prendido
}
else{
digitalWrite(10, LOW);//verde apagado
}
if(d<40 && d>=20){
digitalWrite(9, HIGH);//amarillo prendido
}
else{
digitalWrite(9, LOW);//amarillo apagodo
}
if(d<20){
digitalWrite(8, HIGH);//rojo prendido
}
else{
digitalWrite(8, LOW);//rojo apagado
}*/
if(d>=35){
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
}
else{
if(d>=20){
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
}
else{
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
}
}
}