//Program Water Level
//By Rudi Hidayat, S.Pd., MT
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int trig = 12;
int echo = 11;
long jarak, durasi;
int buzzer = 2;
int led = 3;
void setup()
{
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
pinMode(led, OUTPUT);
lcd.init();
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print(" WELCOME TO ");
lcd.setCursor(0, 1);
lcd.print(" WATER LEVEL ");
delay(2000);
lcd.clear();
}
void loop()
{
digitalWrite(trig, HIGH);
delayMicroseconds(5);
digitalWrite(trig, LOW);
delayMicroseconds(5);
durasi = pulseIn(echo, HIGH);
jarak = durasi / 58.35;
Serial.print(jarak);
Serial.println("cm");
lcd.setCursor(0, 0);
lcd.print("Jarak = cm");
lcd.setCursor(8, 0);
lcd.print(jarak);
if (jarak >= 100) {
tone(buzzer, 1000, 5000);
}
else if (jarak < 100) {
tone(buzzer, 0, 5000);
}
delay(100);
if (jarak >= 100) {
digitalWrite(led, HIGH);
}
else if (jarak <= 20) {
digitalWrite(led, LOW);
}
}