//Sensor Ultrasonik dari instruktur
#define ECHO_PIN 2 //deklarasi pin echo di sensor ultrasonik
#define TRIG_PIN 15 //deklarasi pin trigger

void setup() {
  Serial.begin(115200); //insialisasi serial monitor dan baudrate
  pinMode(TRIG_PIN, OUTPUT); //inisialisasi pin trigger sebagai pin output
  pinMode(ECHO_PIN, INPUT); //inisialisasi pin echo sebagai pin input
}

float readDistanceCM() { //fungsi pembacaan sensor ultrasonik
  digitalWrite(TRIG_PIN, LOW); //perintah agar transmitter tidak memancarkan gelombang ultrasonik
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH); //perintah agar transmitter memancarkan gelombang ultrasoniknya
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW); //perintah agar transmitter memutus pancaran gelombang ultrasoniknya
  int duration = pulseIn(ECHO_PIN, HIGH); //perintah untuk membaca durasi pantulan gelombang ultrasonik yang diterima oleh receiver dan disimpan ke dalam variabel duration
  return duration * 0.034 / 2; //perintah konversi durasi pantulan menjadi nilai jarak dalam CM kemudian disimpan ke dalam fung readDistanceCM
}

void loop() {
  /*digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  int duration = pulseIn(ECHO_PIN, HIGH);*/
  float distance = readDistanceCM(); //perintah menyimpan nilai pembacaan ultrasonik ke dalam variabel distance

  Serial.print("Jarak: "); //perintah untuk menampilkan karakter jarak ke serial monitor
  Serial.println(distance); //perintah untuk menampilkan nilai dari variabel distance ke serial monitor
  
  delay(100);
}