#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Pin untuk sensor Ultrasonik HC-SR04
const int trigPin = 5; // GPIO 5
const int echoPin = 4; // GPIO 4
// Inisialisasi LCD dengan alamat I2C (0x27) dan ukuran LCD (16 kolom, 2 baris)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Mulai komunikasi serial dan LCD
Serial.begin(115200);
lcd.init();
lcd.begin(16, 2);
lcd.backlight(); // Menyalakan backlight LCD
// Set pin mode untuk sensor ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Menampilkan pesan awal pada LCD
lcd.setCursor(0, 0);
lcd.print("Mengukur Jarak...");
delay(2000);
}
void loop() {
// Menghitung jarak menggunakan sensor ultrasonik
long duration, distance;
// Menyalakan sinyal trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca waktu yang dibutuhkan sinyal untuk kembali
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak (kecepatan suara = 34300 cm/s)
distance = duration * 0.034 / 2; // Menghitung jarak dalam cm
// Menampilkan jarak pada Serial Monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Menampilkan jarak pada LCD
lcd.clear();
lcd.setCursor(0, 0); // Set kursor pada baris pertama
lcd.print("Jarak: ");
lcd.print(distance); // Menampilkan jarak
lcd.print(" cm");
delay(1000);
}