//Program Water Level
//By Hilbram Fachrezy XI TEDK 1
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int trig = 6;
int echo = 5;
long waktu, jarak;
int buzzer = 2;
int led = A0;
void setup() {
lcd.init(); //untuk inisialisasi lcd, untuk memulai komunikasi dengan arduino
lcd.backlight(); //untuk menyalakan lampu latar lcd
lcd.clear(); //berfungsi untuk menghapus semua karakter yang ada di lcd, termasuk spasi dan titik
lcd.setCursor(3,0); //mau mulai darimana (x,y) jadi itu x = 2, y=0
lcd.print("WELCOME TO");
lcd.setCursor(0,1);
lcd.print(" WATER LEVEL ");
delay(2000);
lcd.clear();
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600); //perantara antar arduino dengan monitor, untuk mengaktifkan serial monitor di layar laptop
pinMode(buzzer, OUTPUT);
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(trig, HIGH); // untuk mengaktifkan transmitter
delayMicroseconds(5);
digitalWrite(trig, LOW);
delayMicroseconds(5);
waktu = pulseIn(echo, HIGH); // untuk mengaktifkan echo
jarak = waktu/58.4;
Serial.print("Jarak = ");
Serial.print(jarak);
Serial.println(" cm");
lcd.setCursor(0,0);
lcd.print("jarak = ");
lcd.setCursor(8,0);
lcd.print(jarak);
lcd.print(" cm ");
delay(200);
if (jarak > 100){
tone(buzzer, 500, 2000);
digitalWrite(led, HIGH);
} else {
noTone(buzzer);
}
if(jarak < 20){
digitalWrite(led, LOW);
}
//jika jarak > 100cm, maka buzzer berbunyi
//jika jarak < 100cm, maka buzzer tidak berbunyi
//jika jarak > 100cm, maka LED menyala
//jika jarak < 20cm, maka LED padam
tone(buzzer,500);
}