#include <LiquidCrystal_I2C.h>
//Inisialisasi LCD dengan alamat 0x27
LiquidCrystal_I2C lcd (0x27,16,2);
//definisi pin sensor ultrasonik
const int trigPin = 13;
const int echoPin = 12;
//Definisi pin LED
const int ledMerah = 11;
const int ledKuning = 10;
const int ledHijau = 9;
// Variabel untuk menyimpan jarak
long duration;
int distance;
void setup(){
//Inisialisasi pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledHijau, OUTPUT);
//Inisialisasi LCD
lcd.init();
lcd.backlight();
//Tampilkan pesan awal di LCD
lcd.setCursor(0,0);
lcd.print("Jarak");
}
void loop(){
//Kirimkan sinyal trigger untuk memulai pengukuran
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//Hitung waktu yang dibutuhkan pantulan
duration = pulseIn(echoPin,HIGH);
//Hitung jarak dalam cm
distance = duration *0.034 / 2;
//Tampilkan jarak di LCD
lcd.setCursor(7,0);
lcd.print(distance);
lcd.print("cm");
if (distance < 30){
digitalWrite(ledMerah, HIGH);
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, LOW);
}
else if (distance <50){
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, HIGH);
digitalWrite(ledHijau, LOW);
}
else{
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, HIGH);
}
delay(500); //Delay untuk stabilitas
}