#include <Wire.h> // Memanggil library wire.h
#include <LiquidCrystal_I2C.h> // Memanggil library LCD dengan I2C
LiquidCrystal_I2C lcd(0x27, 20, 4); // Alamat I2C(0x27) LCD dan Jenis LCD (20x4)
#define echoPin A0 //Deklarasi echo terhubung pada pin A0 HC-SR04
#define trigPin A1 //Deklarasi trig terhubung pada pin A1 HC-SR04
#define led 2 //Deklarasi LED terhubung pada pin 2
// defines variables
long durasi; // variabel durasi suara
int jarak; // variabel untuk mengukur jarak
void setup() {
lcd.init(); // instruksi untuk memulai LCD
lcd.begin(20,4); // instruksi untuk menggunakan lcd 20x4
lcd.backlight(); // instruksi untuk mengaktifkan lampu latar LCD
pinMode(trigPin, OUTPUT); // deklarasi pin trig sebagai output
pinMode(echoPin, INPUT); // deklarasi pin echo sebagai input
pinMode(led, OUTPUT); // deklarasi LED sebagai output
Serial.begin(9600); // Serial Communication is starting with 9600 of baudrate speed
}
void loop() {
digitalWrite(trigPin, LOW); // Trig tidak aktif
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // Trig aktif
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca sinyal masuk pada echo
durasi = pulseIn(echoPin, HIGH);
// Menghitung Jarak
jarak = durasi * 0.034 / 2; // Rumus menghitung jarak ultrasonik
lcd.setCursor(2, 0); // karakter dimulai dari kolom 2 baris 1
lcd.print("Tutorial HC-SR04"); // Karakter yang akan ditampilkan pada LCD
lcd.setCursor(4, 1); // karakter dimulai dari kolom 4 baris 2
lcd.print("Arduino Uno"); // Karakter yang akan ditampilkan pada LCD
lcd.setCursor(0,2); // karakter dimulai dari kolom 1 baris 3
lcd.print("Jarak:"); // Karakter yang akan ditampilkan pada LCD
lcd.print(jarak); // Menampilkan data jarak pada LCD
lcd.print(" cm");
delay(10);
if (jarak < 150){ // instruksi untuk mengaktifkan LED jika jarak benda kurang dari 5 cm
digitalWrite(led, HIGH);
lcd.setCursor(0,3);
lcd.print("LED ON ");
}
else {
digitalWrite(led, LOW); // instruksi untuk mematikan LED jika jarak benda lebih dari 5 cm
lcd.setCursor(0,3);
lcd.print("LED OFF");
}
delay(1000);
}