#include <LiquidCrystal_I2C.h>
#define PIN_TRIG 2
#define PIN_ECHO 15
#define PIN_LED 5
#define SDA_PIN 12
#define SCL_PIN 13
#define SOUND_SPEED 0.034
long duration;
float distance;
float distanceCm;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_ECHO, INPUT);
// inisialisasi komunikasi I2C
Wire.begin(SDA_PIN, SCL_PIN);
// inisialisasi LCD
lcd.init();
lcd.backlight();
}
void loop() {
// Start a new measurement:
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(2);
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Read the result:
int duration = pulseIn(PIN_ECHO, HIGH);
if (distance < 10) {
digitalWrite(PIN_LED, HIGH);
} else {
digitalWrite(PIN_LED, LOW);
}
// calculate the distance
distanceCm = duration * SOUND_SPEED/2;
// melakukan cetak hasil di serial monitor
Serial.print("Jarak dalam CM: ");
Serial.println(distanceCm);
// menampilkan pesan pada LCD
lcd.setCursor(0, 0);
lcd.print("Jarak : ");
lcd.println(distanceCm);
delay(1000);
}