int trigPin = 2; //hubungkan dengan pin trigger pada sensor jarak
int echoPin = 3; //hubungkan dengan pin echo pada sensor jarak
float distance = 0; //menyimpat nialai jarak yang diukur oleh sensor
void setup() {
Serial.begin (115200); //memulai komunikasi dengan serial monitor
pinMode(trigPin, OUTPUT); //pin trigger mengeluarkan pulsa listrik
pinMode(echoPin, INPUT); //pin echo akan mengukur durasi pulsa balik yang dikeluarkan dari sensor
}
void loop() {
distance = getDistance(); //variabel untuk menyimpan nilai jarak yang diukur oleh sensor
Serial.print(distance,1); //menampilkan jarak yang telah diukur pada serial monitor dengan 1 angka dibelakang koma
Serial.println(" cm"); //menampilkan unit satuan setelah nilai
delay(50); //jeda 50ms antara setiap pembacaan
}
//------------------FUNCTIONS-------------------------------
//Menghasilkan nilai jarak yang terukur oleh sensor jarak HC-SR04
float getDistance() {
float echoTime; //variabel untuk menyimpan waktu yang diperlukan sebuah ping memantul dari sebuah objek
float calcualtedDistance; //variabel untuk menyimpan kalkulasi jarak dari echo time
//mengirim sinyal pulsa ultrasonic yang lamanya 10ms
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
echoTime = pulseIn(echoPin, HIGH); //menggunakan perintah pulsein untuk melihat seberapa lama waktu yang dibutuhkan
//pulsa ubtuk memantul kembali ke sensor
calcualtedDistance = echoTime / 58.26; //menghitung jarak dari objek yang telah memantulkan pulsa (setengah waktu pantul dikalikan dengan kecepatan suara)
return calcualtedDistance; //kirim hasil nilai jarak yang telah dihitung
}