Alat Penuntun Parkir dengan Pendeteksi Jarak Ultrasonik
Alat ini merupakan pengembangan dari sensor ultrasonik yang dapat mendeteksi jarak. Sensor ultrasonik bekerja dengan cara mengeluarkan gelombang ultrasonik dan menunggu gelombang pantul untuk diterima pada receiver. Waktu yang diperlukan oleh gelombang untuk terpantul dan diterima dikonversi menjadi jarak antar benda penghalang dengan permukaan sensor.
Untuk menghasilkan pulse ultrasonik, kita perlu mengatur Pin Pemicu (Trigger) pada status high selama 10 μs. Pin tersebut mengirimkan gelombang yang akan melakukan perjalanan dengan kecepatan suara dan akan diterima di Echo Pin. Echo Pin akan menampilkan waktu dalam mikrodetik.
Misalnya, jika objek berjarak 20 cm dari sensor, dan kecepatan suara adalah 340 m / s atau 0,034 cm / μs, gelombang suara harus berjalan sekitar 588 mikrodetik. Tetapi yang akan Anda dapatkan dari pin Echo akan menjadi dua kali lipat, dikarenakan gelombang suara perlu bergerak maju dan memantul ke belakang. Jadi untuk mendapatkan jarak dalam cm kita perlu mengalikan nilai waktu perjalanan yang diterima dari pin echo dengan 0,034 dan membaginya dengan 2.
Cara Kerja Alat
1. Saat mikrokontroler menyala, maka secara otomatis sensor ultrasonik akan bekerja sesuai dengan progam yang dibuat
2. Sensor ultrasonik akan memancarkan dan menerima gelombang pantul yang kemudian diproses oleh mikrokontroler
3. Data yang diterima mikrokontroler dari sensor adalah data durasi (dalam mikrodetik) dari sinyal pantul yang diterima sensor ultrasonik. Data durasi tersebut kemudian dikalkulasi untuk mendapatkan nilai jarak
4. Setelah mendapatkan nilai jarak, maka mikrokontroler akan melakukan operasi perbandingan. Program akan menghasilkan output yang berbeda sesuai dengan nilai jarak yang didapatkan
Persamaan yang digunakan dalam program untuk mengubah data durasi menjadi jarak.
Jarak = (durasi x 0,034)/2
* durasi dinyatakan dalam mikrodetik
* 0,034 berasal dari kecepatan suara yaitu 340 m/s, kemudian dikonversi untuk menyesuaikan satuan durasi dalam mikrodetik (us), sehingga didapatkan 0,034 cm/us
Output Program dan Alat
1. Jika jarak sensor dengan benda penghalang kurang dari sama dengan 100 cm, maka buzzer akan berbunyi tanpa putus
2. Jika jarak sensor dengan benda penghalang kurang dari sama dengan 150 cm, maka buzzer akan berbunyi setiap 200 ms
3. Jika jarak sensor dengan benda penghalang kurang dari sama dengan 250 cm, maka buzzer akan berbunyi setiap 300 ms
4. Jika jarak sensor dengan benda penghalang lebih dari 250 cm, maka buzzer tidak akan berbunyi
Flowchart
Rangkaian pada Proteus
Daftar komponen simulasi
1. Arduino UNO
2. Ultrasonic sensor
3. LED sebagai pengganti buzzer
4. Terminal window
5. Potensiometer (POT-HG)
6. Voltmeter DC
Potensiometer digunakan hanya saat simulasi untuk mengubah jarak pembacaan sensor ultrasonik. Terminal window berguna untuk menampilkan pembacaan jarak.
Code untuk program
const int trigPin = 4;
const int echoPin = 3;
const int pinBuzzer = 2;
long durasi, jarak;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(pinBuzzer, OUTPUT);
}
void loop() {
// menghasilkan impulse selama 10 mikrodetik pada pin trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// menghitung durasi pantul impulse
durasi = pulseIn(echoPin, HIGH);
// menghitung jarak
jarak = ((0.034 * durasi) / 2);
// kecepatan suara = 340 m/s = 0,034 cm/us
// print nilai ke Serial Monitor
Serial.print("Jarak: ");
Serial.print(jarak);
Serial.print(" cm");
if (jarak <= 100){
digitalWrite(pinBuzzer,HIGH);
Serial.print(" Buzzer ON selalu (jarak <= 100cm)");
Serial.println();
for (int x=0; x < 100; x++) {
delay(1);
}
}
else if (jarak <= 150){
digitalWrite(pinBuzzer,HIGH);
Serial.print(" Buzzer ON setiap 200ms (jarak <= 150cm)");
Serial.println();
for (int x=0; x < 200; x++) {
delay(1);
}
digitalWrite(pinBuzzer,LOW);
for (int x=0; x < 200; x++) {
delay(1);
}
}
else if (jarak <= 250){
digitalWrite(pinBuzzer,HIGH);
Serial.print(" Buzzer ON setiap 300ms (jarak <= 250cm)");
Serial.println();
for (int x=0; x < 300; x++) {
delay(1);
}
digitalWrite(pinBuzzer,LOW);
for (int x=0; x < 300; x++) {
delay(1);
}
}
else{
digitalWrite(pinBuzzer,LOW);
Serial.print(" Buzzer OFF (jarak > 250cm)");
Serial.println();
for (int x=0; x < 100; x++) {
delay(1);
}
}
}
Simulasi
Menyusun rangkaian dan membuat program yang kemudian di compile untuk mendapatkan file hex. File hex harus dipasangkan pada Arduino di Proteus. Potensiometer digunakan hanya pada saat simulasi untuk mengubah pembacaan jarak ultrasonik. Kondisi buzzer dapat dilihat dari LED dan terminal window.
Berikut ini video dari simulasi. Simulasi terlihat lebih lambat karena tidak berjalan real time.
Daftar Pustaka
Arduino - Ultrasonic Sensor. (2020, April 16). Diambil kembali dari ARDUINO GET STARTED: https://arduinogetstarted.com/tutorials/arduino-ultrasonic-sensor
Jabbaar, A. A. (2020, April 16). Ultrasonic Sensor HC-SR04 with Arduino Tutorial. Diambil kembali dari hackster.io: https://www.hackster.io/abdularbi17/ultrasonic-sensor-hc-sr04-with-arduino-tutorial-327ff6
Comments
Post a Comment