// Deklarasi pin untuk sensor ultrasonik
const int trigPin = 9;
const int echoPin = 10;
long duration;
float distance, height, waterLevel;
const float sensorHeight = 200.0; // Ketinggian sensor dari dasar laut dalam cm
#include <LiquidCrystal.h>
// Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
// Jika menggunakan LCD, atur pin sesuai koneksi
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// Inisialisasi pin untuk sensor ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Inisialisasi Serial Monitor
Serial.begin(9600);
// Jika menggunakan LCD, inisialisasi layar
lcd.begin(16, 2);
lcd.print("Water Level:");
}
void loop() {
// Mengirim sinyal trigger dari sensor ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca durasi sinyal yang dipantulkan
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak dalam cm
distance = (duration * 0.034) / 2;
// Menghitung ketinggian air (sensorHeight - distance)
waterLevel = sensorHeight - distance;
// Mencetak hasil pengukuran di Serial Monitor
Serial.print("Jarak ke air: ");
Serial.print(distance);
Serial.println(" cm");
Serial.print("Ketinggian air: ");
Serial.print(waterLevel);
Serial.println(" cm");
// Jika menggunakan LCD, tampilkan hasil pengukuran
lcd.setCursor(0, 1);
lcd.print(waterLevel);
lcd.print(" cm");
// Tunggu sebelum pengukuran berikutnya
delay(2000);
}