#include <Wire.h> // Memanggil library wire.h
#include <LiquidCrystal_I2C.h> // Memanggil library LCD dengan I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // 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, jarak_max = 150; // variabel untuk mengukur jarak
void setup() {
lcd.init(); // instruksi untuk memulai LCD
lcd.begin(16,2); // 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(0,0); // 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");
Serial.print("Jarak : ");
Serial.print(jarak);
Serial.println(" cm");
delay(500);
if (jarak < jarak_max){ // instruksi untuk mengaktifkan LED jika jarak benda kurang dari 20 cm (jarak_max)
digitalWrite(led, LOW);
lcd.setCursor(0,1);
lcd.print("di luar jangkauan");
}
else {
digitalWrite(led, HIGH); // instruksi untuk mematikan LED jika jarak benda lebih dari 20 cm (jarak_max)
lcd.setCursor(0,1);
lcd.print("di dalam jangkauan");
}
delay(500);53.; }