#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C
int trig_pin = 6; // Mendefinisikan pin trigger ultrasonik
int echo_pin = 5; // Mendefinisikan pin echo ultrasonik
int pompa_air = 7; // Mendefinisikan pin pompa air
long duration, distance; // Variabel untuk menyimpan waktu pantulan ultrasonik
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi LCD dengan alamat I2C 0x27, dan ukuran 16x2
void setup() {
Serial.begin (9600);
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
digitalWrite(trig_pin, LOW);
pinMode(pompa_air, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
digitalWrite(trig_pin, LOW);
delayMicroseconds(2);
digitalWrite(trig_pin, HIGH);
delayMicroseconds(10);
duration = pulseIn(echo_pin, HIGH);
distance = (duration / 2) / 29.2; // Menghitung jarak dalam sentimeter berdasarkan durasi pantulan
Serial.print(distance);
Serial.println(" cm");
if (distance >= 200){
digitalWrite(pompa_air, HIGH);
lcd.setCursor(0, 0);
lcd.print("Ting.Air: ");
lcd.setCursor(10, 0);
lcd.print(distance);
lcd.setCursor(13, 0);
lcd.print(" cm");
lcd.setCursor(4,1);
lcd.print("POMPA ON");
delay(2000);
lcd.clear();
} else if (distance <= 15){
digitalWrite(pompa_air, LOW);
lcd.setCursor(0, 0);
lcd.print("Tinggi Air: ");
lcd.setCursor(11, 0);
lcd.print(distance);
lcd.setCursor(13, 0);
lcd.print(" cm");
lcd.setCursor(4,1);
lcd.print("POMPA OFF");
delay(2000);
lcd.clear();
}
}