#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD 1602 I2C
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Definisi pin sensor Ultrasonik HCSR04
const int trigPin = 9;
const int echoPin = 10;
const int pinTombol = 11;
bool Tanda;
void setup() {
// Inisialisasi Serial Monitor
Serial.begin(9600);
// Inisialisasi LCD
lcd.begin(16, 2);
lcd.backlight();
// Inisialisasi pin sensor Ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(pinTombol, INPUT_PULLUP);
}
void loop() {
int tombol = digitalRead(pinTombol); //tekan tombol
if(tombol == LOW){Tanda = true; lcd.clear();} //membandingakan tombol ditekan atau tidak
if(Tanda == false) {
lcd.setCursor(0,0);
lcd.print("PROJEK PENGGARIS DIGITAL");
lcd.scrollDisplayLeft();
delay(100);
}else{
// Variabel untuk menyimpan hasil pengukuran jarak
long distance;
// Kirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Tambahkan delay sebelum membaca echo
delayMicroseconds(10);
// Baca durasi pulsa ultrasonik
unsigned long duration = pulseIn(echoPin, HIGH);
// Hitung jarak berdasarkan durasi pulsa
distance = (duration * 0.034) / 2;
// Tampilkan hasil pengukuran pada Serial Monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Tampilkan hasil pengukuran pada LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Jarak:");
lcd.setCursor(7, 0);
lcd.print(distance);
lcd.setCursor(12, 0);
lcd.print("cm");
// Tunggu sejenak sebelum melakukan pengukuran selanjutnya
delay(100);
}
}