Penerapan Sensor Ultrasonic dengan Arduino

Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis berupa bunyi menjadi besaran listrik dan sebaliknya. Sensor ini bekerja berdasarkan prinsip dari pantulan suatu gelombang suara, dimana sensor ini menghasilkan gelombang suara yang kemudian menangkap kembali dengan perbedaan waktu sebagai dasar pengindra. Perbedaan waktu yang dipancarkan dan diterima kembali adalah berbanding lurus dengan jarak objek yang memantulkannya.

Bentuk Fisik Sensor Ultrasonic

Sensor ultrasonik ini umumnya digunakan untuk mendeteksi keberadaan suatu objek dalam jarak tertentu di depannya. Sensor ultrasonik mempunyai kemampuan mendeteksi objek lebih jauh terutama untuk benda-benda yang keras. Pada benda-benda yang keras yaitu yang mempunyai permukaan kasar gelombang ini akan dipantulkan lebih kuat daripada benda yang permukaannya lunak. Sensor ultrasonik ini terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan rangkaian penerima ultrasonik disebut receiver.

Frekuensi kerja sensor ultrasonik pada daerah diatas gelombang suara dari 40kHz – 400kHz. Sensor ultrasonik terdiri dari dua unit, yaitu unit pemancar dan unit penerima. Struktur unit pemancar dan penerima sangatlah sederhana, sebuah kristal piezoelektrik dihubungkan dengan mekanik jangkar dan hanya dihubungkan dengan diafragma penggetar. Tegangan bolak-balik yang memiliki frekuensi kerja 40kHz – 400kHz diberikan pada plat logam. Struktur atom dari kristal piezoelektrik akan berkontraksi (mengikat), mengembang atau menyusut terhadap polaritas tegangan yang diberikan dan ini disebut dengan efek piezoelektrik. Kontraksi yang terjadi diteruskan ke diagfragma penggetar sehingga terjadi gelombang ultrasonik yang dipancarkan ke udara (tempat sekitarnya).

JEJAK TERKAIT :  Kendali Pneumatik Single dan Double Acting Cylinder Bergerak Bergantian

Pantulan gelombang ultrasonik akan terjadi bila ada objek tertentu dan pantulan gelombang ultrasonik akan diterima kembali oleh unit sensor penerima. Selanjutnya unit sensor penerima akan menyebabkan diafragma penggetar akan bergetar dan efek piezoelektrik mengahasilkan sebuah tegangan bolak-balik dengan frekuensi yang sama. Besar amplitudo sinyal elektrik yang dihasilkan unit sensor penerima tergantung dari jarak objek yang dideteksi serta kualitas dari unit sensor pemancar dan unit sensor penerima.

Untuk lebih jelasnya tentang prinsip kerja dari sensor ultrasonik dapat dilihat pada Gambar berikut:

Sensor ini secara umum bekerja dengan menggunakan metode pantulan untuk menghitung jarak antara sensor dengan objek. Jarak antara sensor dengan objek dapat dihitung dengan cara mengalikan kecepatan rambat dari gelombang suara ultrasonik pada media rambat berupa suara tersebut dengan setengah waktu yang digunakan sensor ultrasonik untuk memancarkan gelombang suara ultrasonik dari rangkaian pemancar (Tx) menuju objek sampai diterima kembali oleh rangkaian penerima (Rx).

Rangkaian Kendali 1 buah Sensor Ultrasonic dengan Arduino

Rangkaian Sensor Ultrasonic

LED pada rangkaian bisa diganti dengan driver atau komponen lain.

 

List Program :

#define pinEcho 8 //Echo Pin 
#define pinTrig 9 //Trigger Pin 
#define pinLED 13 //Led default dari Arduino uno

int maxRange = 200; //kebutuhan akan maksimal range 
int minRange = 0; //kebutuhan akan minimal range 
long duration, distance; //waktu untuk kalkulasi jarak

void setup() { 
Serial.begin (9600); //inisialiasasi komunikasi serial 
pinMode(pinTrig, OUTPUT); //deklarasi pin 
pinMode(pinEcho, INPUT); 
pinMode(pinLED, OUTPUT); 
}

void loop() { 
//* Berikut siklus trigPin atau echo pin yang digunakan untuk menentukan jarak objek terdekat dengan memantulkan gelombang suara dari itu. */ 
digitalWrite(pinTrig, LOW); delay(2); 
digitalWrite(pinTrig, HIGH); delay(10); 
digitalWrite(pinTrig, LOW); 
duration = pulseIn(pinEcho, HIGH); 
distance = duration/58.2; //perhitungan untuk dijadikan jarak

//* Kirim angka negatif ke komputer dan Turn LED ON untuk menunjukkan "di luar jangkauan" */ 
if (distance >= maxRange || distance <= minRange) { 
Serial.println("-1"); 
digitalWrite(pinLED, HIGH); 
} 
else { //*Kirim jarak ke komputer menggunakan Serial protokol, dan menghidupkan LED OFF untuk menunjukkan membaca sukses. */ 
Serial.println(distance); 
digitalWrite(pinLED, LOW); 
delay(50); //waktu tunda 50mS 
} 
}

Untuk lebih jelasnya bisa dilihat dalam video simulasi di bawah ini :

JEJAK TERKAIT :  C.282900.011.01 – Memelihara Sensor

 

Rangkaian Kendali 3 buah Sensor Ultrasonic dengan Arduino

List Program :

//IO sensor 1
#define pinTrig1 9 //Trigger Pin
#define pinEcho1 8 //Echo Pin
#define pinLED1 13 //OUT 1 Pin
//IO Sensor 2
#define pinTrig2 7 //Trigger Pin
#define pinEcho2 6 //Echo Pin
#define pinLED2 12 //OUT 2 Pin
//IO Sensor 3
#define pinTrig3 5 //Trigger Pin
#define pinEcho3 4 //Echo Pin
#define pinLED3 11 //OUT 3 Pin
int maxRange1 = 200; //kebutuhan akan maksimal range
int minRange1 = 0; //kebutuhan akan minimal range
long duration1, distance1; //waktu untuk kalkulasi jarak
int maxRange2 = 200;
int minRange2 = 0; 
long duration2, distance2;
int maxRange3 = 200;
int minRange3 = 0; 
long duration3, distance3;
void setup() {
Serial.begin (9600); //inisialiasasi komunikasi serial
//deklarasi pin
pinMode(pinTrig1, OUTPUT);
pinMode(pinEcho1, INPUT);
pinMode(pinLED1, OUTPUT);
pinMode(pinTrig2, OUTPUT);
pinMode(pinEcho2, INPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinTrig3, OUTPUT);
pinMode(pinEcho3, INPUT);
pinMode(pinLED3, OUTPUT);
}
void loop() {
digitalWrite(pinTrig1, LOW);delay(2);
digitalWrite(pinTrig1, HIGH);delay(10);
digitalWrite(pinTrig1, LOW);
duration1 = pulseIn(pinEcho1, HIGH);
digitalWrite(pinTrig2, LOW);delay(2);
digitalWrite(pinTrig2, HIGH);delay(10);
digitalWrite(pinTrig2, LOW);
duration2 = pulseIn(pinEcho2, HIGH);
digitalWrite(pinTrig3, LOW);delay(2);
digitalWrite(pinTrig3, HIGH);delay(10);
digitalWrite(pinTrig3, LOW);
duration3 = pulseIn(pinEcho3, HIGH);
//perhitungan untuk dijadikan jarak
distance1 = duration1/58.2;
distance2 = duration2/58.2;
distance3 = duration3/58.2;
//* Kirim angka negatif ke komputer dan Turn LED ON untuk menunjukkan "di luar jangkauan" */
if (distance1 >= maxRange1 || distance1 <= minRange1) {
Serial.println("-1");
digitalWrite(pinLED1, HIGH);
}
else {
//*Kirim jarak ke komputer menggunakan Serial protokol, dan menghidupkan LED OFF untuk menunjukkan membaca sukses. */
Serial.println(distance1);
digitalWrite(pinLED1, LOW);
delay(50); //waktu tunda 50mS
}
//* Kirim angka negatif ke komputer dan Turn LED ON untuk menunjukkan "di luar jangkauan" */
if (distance2 >= maxRange2 || distance2 <= minRange2) {
Serial.println("-1");
digitalWrite(pinLED2, HIGH);
}
else {
//*Kirim jarak ke komputer menggunakan Serial protokol, dan menghidupkan LED OFF untuk menunjukkan membaca sukses. */
Serial.println(distance2);
digitalWrite(pinLED2, LOW);
delay(50); //waktu tunda 50mS
}
//* Kirim angka negatif ke komputer dan Turn LED ON untuk menunjukkan "di luar jangkauan" */
if (distance3 >= maxRange3 || distance3 <= minRange3) {
Serial.println("-1");
digitalWrite(pinLED3, HIGH);
}
else {
//*Kirim jarak ke komputer menggunakan Serial protokol, dan menghidupkan LED OFF untuk menunjukkan membaca sukses. */
Serial.println(distance3);
digitalWrite(pinLED3, LOW);
delay(50); //waktu tunda 50mS
}
}

Untuk lebih jelasnya dapat dilihat dalam video simulasi di bawah ini :

JEJAK TERKAIT :  Prinsip Kerja dan Rangkaian Limit Switch Pneumatik

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *