Membuat Parking Sensor Sendiri

Pada awal-awal punya mobil baru, anak saya, Ivan, suka sekali dengan parking sensor yang ada di mobil kami. Yang bunyi beep beep kalau sudah deket dengan dinding di belakang kalau pas lagi atret mundur

Suatu hari saya mengajak Ivan untuk membuat parking sensor sendiri menggunakan komponen arduino yang ada. Dan dia antusias sekali. Akhirnya kami buat parking sensor tersebut

Pertama-tama kita perlu dengan jelas menuliskan fungsinya sbb:

  • mengukur jarak dengan obstacle
  • membunyikan suara beep kalau jaraknya sudah dekat
  • membunyikan suara beep yang lebih cepat kalau suaranya sangat dekat

Dari deskripsi fungsi di atas, jelas berati kita perlu sensor jarak dan speaker! Sensor jarak untuk mengukur jarak dan speaker untuk mengeluarkan bunyi beep. Dari hasil google dapat diperoleh salah satu sensor jarak seperti ini

Namanya "Ping" dari http://www.parallax.com/product/28015 Tapi saya punya versi murahnya dari ebay, yaitu HC-SR04 yang saya beli beberapa waktu lalu seperti ini:

Lihat yang pertama, Ping dari Paralax cuma punya 3 kaki, sedangkan yang kedua, HC-SR04 punya 4 kaki, Kalau kita lihat di gambar tersebut, sensor jarak ini memiliki 4 pin, yaitu VCC, GND, TRIG, ECHO. Pada yang kedua, sinyal trigger dan echo dibedakan pinnya, sedangkan yang pertama dijadikan satu sehingga kita harus mengganti-ganti mode pin di Arduino menjadi input atau output. Cara kerja sensor ini sebetulnya mirip-mirip dengan sonar di kapal selam, di mana trigger kalau 'dipencet' akan mengeluarkan gelombang ultrasonic dan pantulannya akan diterima oleh echo. Waktu yang dibutuhkan oleh sinyal untuk pergi dan kembali lagi setelah memantul akan menentukan jarak sensor dengan benda yang memantulkan.

Oke deh, let's get kickin'. Pertama-tama kita coba sensor jaraknya.

#define trigPin 13
#define echoPin 12

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  long waktuTempuh, jarak;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  waktuTempuh = pulseIn(echoPin, HIGH);
  //kecepatan suara = 343 m/s
  //ingat rumus GLB jarak = waktu * kecepatan. di mana waktunya adalah setengah waktuTempuh
  //karena waktuTempuh dalam microdetik, maka perlu dibagi 1000000 dan untuk mendapatkan jarak dalam cm perlu dikali 100
  jarak = (waktuTempuh/2) * 343 * 100 / 1000000; // atau kira-kira = (waktuTempuh/2) / 29.1
  Serial.print(jarak );
  Serial.println(" cm");
   
  delay(500);
}

Kita compile program kita, tidak ada error, langsung kita upload ke Arduino. Buka Serial Monitor

Great! Sensor jaraknya kelihatannya bekerja.

Next, kita buat suara beep nya. .... nanti kita lanjutkan

Untuk mencoba bunyi tone, kita coba yang sederhana. Code di bawah ini akan membunyikan suara tone 1000 Hz selama 2 detik.

void setup() {
    int pinOut = 7;
    int freq = 1000;
    int duration = 2000;
    tone(pinOut, freq, duration);
}

void loop() {

}

Sip. jalan! Oke, next, kita gabungkan menjadi parking sensor!

Hasil akhir, parking sensor menggunakan Arduino:

#define trigPin 13
#define echoPin 12

int pinBeep = 7;
int loFreq = 1000;
int hiFreq = 1500;
int panjangBeep = 500;
 
void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
 
}

void loop() {
  long waktuTempuh, jarak;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  waktuTempuh = pulseIn(echoPin, HIGH);
  /* kecepatan suara = 343 m/s
   * ingat rumus GLB jarak = waktu * kecepatan. di mana waktunya adalah setengah waktuTempuh
   * karena waktuTempuh dalam milidetik, maka perlu dibagi 1000000
   * dan untuk mendapatkan jarak dalam cm perlu dikali 100
   * jarak = (waktuTempuh/2) * 343 * 100 /1000000;
   */
  
  jarak = (waktuTempuh/2) * 0.0343;
  Serial.print(jarak);
  Serial.println(" cm");
 
  if (jarak < 30) {
    if (jarak < 15) {
      tone(pinBeep, hiFreq, 250);
    }else tone(pinBeep, loFreq, 250);
  }

  delay(500);
}
Source Code: 
AttachmentSize
Package icon parking_sensor.zip640 bytes
Komponen: 
Indonesian

Comments

1