const int trigPin = 6;
const int echoPin = 5;
 int matlabData;
long durasi, cm;
void setup() {
  // inisialisasi komunikasi serial
  Serial.begin(9600);
}
void loop() {
    if (Serial.available() > 0) {
    // baca data jika ada request
    matlabData = Serial.read();
   // jika request benar, kirim ke MATLAB
    if (matlabData ==1)
    {
      cm = cariJarak();
      Serial.println(cm);
    }
} }
//=================== Fungsi =======================
 long mikrodetikKeCentimeter(long mikrodetik)
{
  // Kecepatan suara sebesar 340 m/s
  // atau 29 mikro detik tiap centimeter
  // Bagi dua untuk mendapatkan jarak yang benar
  // (Ingat, ini adalah waktu sinyal bolak-balik)
  return mikrodetik / 29 / 2;
}
long cariJarak()
 
  {
// Triger dgn memberikan pulsa HIGH selama 10 us
// Lalu, beri sinyal LOW utk mendapatkan sinyal yg tepat
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
   //Baca sinyal HIGH yang ditangkap sensor
  pinMode(echoPin, INPUT);
  durasi = pulseIn(echoPin, HIGH);
  // Ubah dari waktu ke jarak
  cm = mikrodetikKeCentimeter(durasi);
  return cm;
}