#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 10, 9, 8, 7, 6);
const int rojo = 5;
const int verde = 4;
const int trig=2;
const int echo=3;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
digitalWrite(trig, LOW);
}
void loop() {
int distancia = LecturaDistancia();
int porcentaje= 100-(distancia*100/330);
lcd.setCursor(0,0);
lcd.print("Medidor de nivel");
if(distancia<=150){
digitalWrite(verde, HIGH);
digitalWrite(rojo, LOW);
delay(100);
}
if(distancia>150){
digitalWrite(verde, LOW);
digitalWrite(rojo, HIGH);
}
if(distancia<=10){
porcentaje=100;
}
if(distancia>=325){
porcentaje=0;
}
lcd.setCursor(0, 1);
lcd.print("Nivel=");
lcd.print(porcentaje);
lcd.print("% ");
Serial.println(distancia); }
//FUNCION PARA OBTENER LA DISTANCIA
long LecturaDistancia(){
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int tiempo = pulseIn(echo, HIGH);
int distancia = (tiempo/58.2);
return distancia;
}