#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
const int trigPin = 7; // PIN 10 untuk variabel PIN Trigger sensor Ultrasonic
const int echoPin = 6; // PIN 9 untuk variabel PIN Echo sensor Ultrasonic
long durasi; // Variabel untuk menyimpan waktu perubahan PIN Echo dari LOW ke HIGH
int jarak; // Variabel untuk menyimpan jarak tempuh dari sensor ke obyek dan obyek ke sensor
void setup() {
pinMode(trigPin, OUTPUT); // Output untuk mengirimkan gelombang suara ultrasonic
pinMode(echoPin, INPUT); // Input untuk menerima pantulan gelombang suara ultrasonic
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("amel");
lcd.setCursor(3, 1);
lcd.print("Project");
delay(2000);
// Serial.begin(9600); //setup untuk serial monitor dan kecepatan komunikasi (baudrate)
}
void loop() {
// Membersihkan trigPin
digitalWrite(trigPin, LOW); //
delayMicroseconds(2);
// Membuat nilai trigPin menjadi HIGH selama 10 mikro detik
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca echoPin dan memberikan waktu perjalanan gelombang dalam mikro detik
durasi = pulseIn(echoPin, HIGH);
// Menghitung jarak tempuh gelombang suara
jarak = durasi*0.034/2;
// Menyajikan konten melalui Serial Monitor
Serial.print("Jarak: ");
Serial.println(jarak);
// Menyajikan konten melalui LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ada obyek!");
lcd.setCursor(0, 1);
lcd.print("Jarak : ");
lcd.setCursor(7, 1);
lcd.print(jarak);
lcd.setCursor(10, 1);
lcd.print(" Cm");
delay(500);
}