#include <Wire.h>
#include <LiquidCrystal_I2C_Hangul.h>
LiquidCrystal_I2C_Hangul lcd(0x27, 16, 2);
const int Trigger = 2; //Pin digital 2 para el Trigger del sensor
const int Echo = 3; //Pin digital 3 para el Echo del sensor
const int Motor =13;
void setup() {
Serial.begin(9600);//iniciailzamos la comunicación
pinMode(Trigger, OUTPUT); //pin como salida
pinMode(Echo, INPUT); //pin como entrada
pinMode(Motor, OUTPUT); //pin del motor de agua
digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
lcd.init(); // Inicializar el LCD
lcd.backlight(); //Encender la luz de fondo.
}
void loop()
{
long t; //timepo que demora en llegar el eco
long d; //distancia en centimetros
long p;
digitalWrite(Trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso
d = t/59; //escalamos el tiempo a una distancia en cm
p = 100-d; //Esto es el porcentaje del nivel del agua, calculado utilzando la distancia y el valor máximo
if(p <10){
digitalWrite(Motor, HIGH); //Encendemos la bomba de agua si el nivel de agua es menor al 10%
}
else{
digitalWrite(Motor, LOW); //Apagamos la bomba de agua
}
Serial.print("Distancia: ");
Serial.print(d); //Enviamos serialmente el valor de la distancia
Serial.print("cm");
Serial.println();
lcd.setCursor(0, 0);
lcd.print("Nivel de agua:");
lcd.setCursor(0, 1);
lcd.print(p);
lcd.print("%");
delay(100); //Hacemos una pausa de 100ms
}