#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD dengan alamat I2C dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Deklarasi pin LED
int ledMerah = 6;
int ledBiru = 7;
int ledJingga = 5;
void setup() {
pinMode(3, OUTPUT); // Pin Trig
pinMode(2, INPUT); // Pin Echo
pinMode(ledMerah, OUTPUT);
pinMode(ledBiru, OUTPUT);
pinMode(ledJingga, OUTPUT);
lcd.init();
lcd.backlight();
lcd.clear();
}
void loop() {
digitalWrite(3, LOW);
delayMicroseconds(2);
digitalWrite(3, HIGH);
delayMicroseconds(10);
digitalWrite(3, LOW);
int waktu = pulseIn(2, HIGH);
float jarak = waktu * 0.034 / 2;
lcd.setCursor(0, 0);
lcd.print("Jarak: ");
lcd.print(jarak);
lcd.print(" CM ");
// Reset semua LED
digitalWrite(ledMerah, LOW);
digitalWrite(ledBiru, LOW);
digitalWrite(ledJingga, LOW);
lcd.setCursor(0, 1); // Pindah ke baris kedua
if (jarak < 50) {
digitalWrite(ledMerah, HIGH);
lcd.print("Bahaya ");
} else if (jarak < 150) {
digitalWrite(ledBiru, HIGH);
lcd.print("Waspada ");
} else {
digitalWrite(ledJingga, HIGH);
lcd.print("Aman mi ");
}
delay(100);
}