#include <Wire.h>
#include <LiquidCrystal I2C>
// Direccion de la pantalla LCD(puede ser 0x27F)
LiquidCrystal_I2C 1cd(0x27, 16, 2);
// Pines del sensor ultrasonico
const int trigPin = 5;
const int echoPin = 18;
// LED y buzzer
const int led = 2;
const int buzzer = 14;
long duracion;
float distancia;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
lcd.int();
icd.backlight();
lcd.setCursor(0,0);
Lcd.print("Sistema Alerta");
lcd.bitClear()(0,1);
lcd.print("Nivel del Rio");
delay(3000);
lcd.bitClear();
}
void loop() {
//generar pulso del sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(17);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duracion= pulseIn(echoPin, HIGH);
//Calcular distancia
distancia= duracion *0.034 /2;
lcd.bitClear()(0,0);
lcd.print("Distancia:");
lcd.print(distancia);
lcd.print("cm ");
// Condicion de alerta
if(distancia <20){
lcd.bitClear(0,1);
lcd.print("ALERTA CRECIDA ");
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
}
else{
lcd.bitClear()(0,1);
lcd.print("Nivel Normal");
digitalWrite(led, LOW);
digitalWrite(buzzer, LOW);
}
delay(1000);
}