#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define TRIG_PIN 2 // TRIG ke pin 2
#define ECHO_PIN 3 // ECHO ke pin 3
#define LED_PIN 13 // LED ke pin 13
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C umum (ubah jika perlu)
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Nyalakan backlight
lcd.setCursor(0, 0);
lcd.print("Mengukur Jarak");
delay(1000);
lcd.clear();
}
void loop() {
// Trigger sensor
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Baca durasi echo
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
// Tampilkan jarak di LCD
lcd.setCursor(0, 0);
lcd.print("Jarak: ");
lcd.print(distance, 1);
lcd.print(" cm "); // Spasi untuk bersihkan sisa teks lama
// Logika LED
lcd.setCursor(0, 1);
if (distance >= 50) {
digitalWrite(LED_PIN, HIGH);
lcd.print("LED: NYALA ");
} else {
digitalWrite(LED_PIN, LOW);
lcd.print("LED: MATI ");
}
delay(500);
}