#include <LiquidCrystal_I2C.h>
#define TRIG_PIN 9
#define ECHO_PIN 10
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Sensor Jarak");
lcd.setCursor(0, 1);
lcd.print("Inisialisasi...");
delay(2000);
lcd.clear();
}
void loop() {
long duration;
float distance;
// Kirim sinyal ultrasonik
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Hitung durasi pantulan dan jarak.
duration = pulseIn(ECHO_PIN, HIGH, 30000); // Timeout 30ms
distance = duration * 0.034 / 2.0;
lcd.setCursor(0, 0);
if (duration == 0) {
lcd.print("Tidak Terdeteksi ");
} else {
lcd.print("Jarak: ");
lcd.print(distance, 1);
lcd.print(" cm ");
}
// Tambahkan interpretasi jarak
lcd.setCursor(0, 1);
if (distance < 10) {
lcd.print("Sangat Dekat ");
} else if (distance < 50) {
lcd.print("Dekat ");
} else if (distance < 100) {
lcd.print("Sedang ");
} else if (duration == 0) {
lcd.print("Cek Sensor ");
} else {
lcd.print("Jauh ");
}
delay(1000);
}