#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int buzzer = 2;
int led = A0;
int trig = 6;
int echo = 5;
long waktu, jarak;
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Water Level Monitor");
delay(2000);
lcd.clear();
pinMode(buzzer, OUTPUT);
pinMode(led, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600); //perantara antar arduino dengan monitor, untuk mengaktifkan serial
}
void loop() {
digitalWrite(trig, HIGH); //untuk mengaktifkan transmitter
delayMicroseconds(10); // Perlu peningkatan ini untuk pulsa yang lebih baik
digitalWrite(trig, LOW);
waktu = pulseIn(echo, HIGH); //untuk mengaktifkan echo menerima data
jarak = waktu / 58.4;
Serial.print("ukuran = ");
Serial.print(jarak);
Serial.println(" cm");
lcd.setCursor(0, 0);
lcd.print("ukuran = ");
lcd.setCursor(12, 0);
lcd.print(jarak);
lcd.print(" cm ");
// Mengendalikan buzzer berdasarkan jarak
if (jarak > 100) {
noTone(buzzer); // Matikan buzzer jika jarak > 100cm
} else {
tone(buzzer, 500, 1000); // Nyalakan buzzer jika jarak < 100cm
}
// Mengendalikan LED berdasarkan jarak
if (jarak < 20) {
digitalWrite(led, LOW); // Matikan LED jika jarak < 20cm
} else {
digitalWrite(led, HIGH); // Nyalakan LED jika jarak >= 20cm
}
delay(200);
}