#include <Wire.h> // Library untuk komunikasi I2C
#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi LCD I2C dengan alamat 0x27 dan ukuran 16x2
const int echoPin = 8; // Pin Echo dari sensor ultrasonik
const int trigPin = 7; // Pin Trig dari sensor ultrasonik
void setup() {
// Inisialisasi pin untuk ultrasonik
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
// Inisialisasi komunikasi serial
Serial.begin(9600);
// Inisialisasi LCD dengan ukuran 16x2
lcd.begin(16, 2); // Menentukan bahwa LCD berukuran 16 kolom dan 2 baris
lcd.backlight(); // Menyalakan backlight LCD
lcd.setCursor(0, 0); // Menentukan posisi kursor di baris pertama
lcd.print("Ultrasonic"); // Menampilkan teks statis di baris pertama LCD
}
void loop() {
// Mengirimkan sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mengukur waktu pantulan
int durasiPantulan = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan durasi pantulan
float jarak = durasiPantulan * 0.034 / 2; // Menghitung jarak dalam cm
float jarakM = jarak / 100; // Mengonversi jarak ke meter
// Menampilkan jarak di Serial Monitor
Serial.print("Jarak : ");
Serial.print(jarak);
Serial.print(" cm ");
Serial.print(jarakM);
Serial.println(" m");
// Menampilkan jarak di LCD
lcd.setCursor(0, 1); // Pindahkan kursor ke baris kedua LCD
lcd.print("Jarak: "); // Menampilkan teks di baris kedua
lcd.print(jarak); // Menampilkan nilai jarak dalam cm
lcd.print(" cm "); // Tampilkan satuan dan beberapa spasi untuk memastikan teks bersih
delay(500);
}