#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat LCD I2C dan ukuran (16x2)
const int trigPin = 12; // Pin Trig sensor ultrasonik
const int echoPin = 11; // Pin Echo sensor ultrasonik
const int tandonHeight = 150; // Tinggi tandon dalam satuan cm (contoh: 50 cm)
const int maxCapacity = 100; // Kapasitas maksimum tandon dalam satuan liter (contoh: 100 liter)
void setup() {
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Aktifkan backlight LCD
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // Konversi waktu ke jarak (cm)
// Hitung persentase kapasitas air dalam tandon
int capacityPercentage = map(distance, 0, tandonHeight, 0, maxCapacity);
if (capacityPercentage < 0) {
capacityPercentage = 0;
} else if (capacityPercentage > 100) {
capacityPercentage = 100;
}
lcd.clear(); // Bersihkan layar LCD
lcd.setCursor(0, 0); // Posisi kursor pada baris 1 kolom 1
lcd.print("TERPAKAI:");
lcd.setCursor(0, 1); // Posisi kursor pada baris 2 kolom 1
lcd.print(capacityPercentage);
lcd.print("%");
delay(1000); // Tunda selama 1 detik sebelum pengukuran berikutnya
}