#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define Trig_Pin 2
#define Echo_Pin 4
#define Buzzer 5
#define LED_PIN3 14
#define LED_PIN2 12
#define LED_PIN 13
float duration_us, distance_cm, m;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(Trig_Pin, OUTPUT);
pinMode(Echo_Pin, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
pinMode(LED_PIN3, OUTPUT);
pinMode(Buzzer, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
digitalWrite(Trig_Pin, HIGH);
delay(10);
digitalWrite(Trig_Pin, LOW);
duration_us = pulseIn(Echo_Pin, HIGH);
distance_cm = 0.017 * duration_us;
m = distance_cm/100;
lcd.setCursor(0, 0);
lcd.print("kedalaman: " + String(m, 2) +"m");
if (distance_cm < 70) {
Serial.println("AMAN");
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN, LOW);
noTone(Buzzer);
lcd.setCursor(0,1);
lcd.print("Status : Aman ");
}
if (distance_cm >= 70 && distance_cm < 150){
Serial.println("SIAGA");
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN, LOW);
noTone(Buzzer);
lcd.setCursor(0,1);
lcd.print("Status : Siaga ");
}
if (distance_cm > 150) {
Serial.println("BAHAYA");
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN, HIGH);
tone(Buzzer,800);
delay(500);
noTone(Buzzer);
lcd.setCursor(0,1);
lcd.print("Status : Bahaya");
}
Serial.print("kedalaman air: ");
Serial.print(m);
Serial.println("m");
delay(500);
}