Bagaimana Mengukur Jarak Antara Dua Titik Menggunakan Arduino?

Dalam Elektronika, sebagian besar waktu Sensor Ultrasonik digunakan untuk mengukur jarak dari satu titik tertentu ke titik lainnya. Sangat mudah untuk menulis kode di papan Arduino dan mengintegrasikan file sensor ultrasonik untuk melaksanakan tugas ini. Namun dalam artikel ini, kami akan mengadopsi pendekatan yang berbeda. Kami akan menggunakan dua sensor ultrasonik terpisah yang akan diintegrasikan dengan dua Arduino terpisah. Kedua modul ini akan ditempatkan pada dua titik berbeda di mana jarak akan diukur. Satu sensor akan dijadikan receiver dan yang lainnya akan dijadikan pemancar. Dengan demikian, kita akan dapat mengukur jarak antara mereka hanya dengan menemukan posisi pemancar dengan menggunakan banyak penerima ultrasonik. Teknik yang kita gunakan di sini disebut Triangulasi.

Teknik yang digunakan di sini hanya berguna pada sistem skala kecil yang jaraknya kecil dapat ditemukan. Untuk mengimplementasikannya dalam skala besar tentunya diperlukan beberapa modifikasi. Semua tantangan yang dihadapi selama menjalankan proyek ini dibahas di bawah ini.

Bagaimana Cara Menggunakan Arduino dan Sensor Ultrasonik Untuk Mengukur Jarak?

Seperti yang kita ketahui ringkasan di balik proyek, mari kita lanjutkan dan kumpulkan informasi lebih lanjut untuk memulai proyek.

Langkah 1: Mengumpulkan Komponen (Perangkat Keras)

Jika Anda ingin menghindari ketidaknyamanan di tengah-tengah proyek apa pun, pendekatan terbaik adalah membuat daftar lengkap semua komponen yang akan kita gunakan. Langkah kedua, sebelum mulai membuat rangkaian, adalah melalui studi singkat tentang semua komponen ini. Daftar semua komponen yang kami butuhkan dalam proyek ini diberikan di bawah ini.

Langkah 2: Mengumpulkan Komponen (Perangkat Lunak)

Setelah mengunduh Proteus 8 Professional, rancang sirkuit di atasnya. Saya telah menyertakan simulasi perangkat lunak di sini sehingga mungkin nyaman bagi pemula untuk mendesain sirkuit dan membuat koneksi yang sesuai pada perangkat keras.

Langkah 3: Pengerjaan The HCR-05

Seperti yang kita ketahui sekarang abstrak utama dari proyek kita, mari kita lanjutkan dan pergi melalui studi singkat tentang cara kerja HCR-05. Anda dapat memahami kerja utama sensor ini dengan diagram berikut.

Sensor ini memiliki dua pin, pin pemicu, dan pin ramah lingkungan yang keduanya digunakan untuk mengukur jarak antara dua titik tertentu. Prosesnya diawali dengan mengirimkan gelombang ultrasonik dari sensor. Tugas ini dilakukan dengan memicu pin trigonometri untuk 10us. Semburan gelombang ultrasonik 8 sonik dikirim dari pemancar segera setelah tugas ini selesai. gelombang ini akan bergerak di udara dan segera setelah menghantam suatu objek di jalannya, gelombang ini akan menyerang balik dan diterima oleh penerima yang ada di dalam sensor.

Ketika gelombang ultrasonik akan diterima oleh penerima setelah memantulkan sensor, itu akan menempatkan pin ramah lingkunganke tingkat yang tinggi. Pin ini akan tetap dalam status tinggi selama durasi waktu yang akan sama persis dengan waktu yang dibutuhkan oleh gelombang ultrasonik untuk bergerak dari pemancar dan kembali ke penerima sensor.

Untuk membuat sensor ultrasonik Anda pemancar saja,buat saja pin trigonometri sebagai pin output Anda dan kirim pulsa tinggi ke pin ini selama 10us. Ledakan ultrasonik akan dimulai segera setelah ini selesai. Jadi, setiap kali gelombang akan dikirim, hanya pin pemicu sensor ultrasonik yang harus dikontrol.

Tidak ada cara menjadikan sensor ultrasonik sebagai a penerima saja karena naiknya pin ECO tidak dapat dikontrol oleh mikrokontroler karena berhubungan dengan pin trigonometri sensor. Namun ada satu hal yang dapat kita lakukan yaitu, kita dapat menutupi pemancar sensor ultrasonik ini dengan lakban sehingga tidak ada gelombang UV yang keluar. Maka pin ECO pemancar ini tidak akan terpengaruh oleh pemancar.

Langkah 4: Bekerja di Sirkuit

Sekarang, karena kita telah membuat kedua sensor bekerja secara terpisah sebagai pemancar dan penerima, ada masalah besar yang dihadapi di sini. Penerima tidak akan mengetahui waktu yang dibutuhkan oleh gelombang ultrasonik untuk melakukan perjalanan dari pemancar ke penerima karena tidak mengetahui secara pasti kapan gelombang ini ditransmisikan.

Untuk mengatasi masalah ini, yang harus kita lakukan adalah mengirim file TINGGI sinyal ke ECO penerima segera setelah gelombang ultrasonik ditransmisikan oleh sensor pemancar. Atau dengan kata sederhana, kita dapat mengatakan bahwa ECO penerima dan pemicu pemancar harus dikirim ke TINGGI pada saat yang bersamaan. Jadi, untuk mencapai ini, entah bagaimana kita akan membuat pemicu penerima menjadi tinggi segera setelah pemicu pemancar menjadi tinggi. Pemicu penerima ini akan tetap tinggi sampai pin ECO putus RENDAH. Ketika sinyal ultrasonik akan diterima oleh pin ECO penerima, itu akan menjadi RENDAH. Ini berarti pemicu sensor pemancar baru saja mendapat sinyal TINGGI. Sekarang, segera setelah ECO melemah, kami akan menunggu penundaan yang diketahui dan menempatkan pemicu penerima TINGGI. Dengan begitu, kedua sensor akan tersinkronisasi trigger dan jaraknya dihitung dengan mengetahui waktu tunda perjalanan gelombang.

Langkah 5: Merakit Komponen

Meskipun kami hanya menggunakan pemancar dari satu sensor ultrasonik dan penerima yang lain, tetapi wajib untuk menghubungkan keempat pin dari sensor ultrasonik ke Arduino. Untuk menghubungkan sirkuit, ikuti langkah-langkah yang diberikan di bawah ini:

  1. Ambil dua sensor ultrasonik. Tutup penerima sensor pertama dan pemancar sensor kedua. Gunakan lakban putih untuk tujuan ini dan pastikan keduanya tertutup sepenuhnya sehingga tidak ada sinyal yang keluar dari pemancar sensor kedua dan tidak ada sinyal yang masuk ke penerima sensor pertama.
  2. Hubungkan dua Arduino pada dua papan tempat memotong roti terpisah dan hubungkan sensor masing-masing dengannya. Hubungkan Pin pemicu ke pin9 Arduino dan ecoPin ke pin10 Arduino. Nyalakan sensor ultrasonik dengan 5V Arduino dan umumkan semua alasan.
  3. Unggah kode penerima ke Arduino Penerima dan kode pemancar ke Arduino pemancar.
  4. Sekarang buka monitor serial dari sisi penerima dan perhatikan jarak yang sedang diukur.

Diagram rangkaian proyek ini terlihat seperti:

Langkah 6: Memulai Arduino

Jika Anda belum terbiasa dengan Arduino IDE, jangan khawatir karena prosedur langkah demi langkah untuk mengatur dan menggunakan Arduino IDE dengan papan mikrokontroler dijelaskan di bawah ini.

  1. Unduh versi terbaru Arduino IDE dari Arduino.
  2. Hubungkan papan Arduino Nano Anda ke laptop Anda dan buka panel kontrol. di panel kontrol, klikPerangkat keras dan Suara. Sekarang klikPerangkat dan Printer.Di sini, temukan port tempat papan mikrokontroler Anda terhubung. Dalam kasus saya itu COM14tetapi berbeda di komputer yang berbeda.
  3. Klik pada menu Alat. dan atur papan ke Arduino Nano dari menu tarik-turun.
  4. Di menu Alat yang sama, setel port ke nomor port yang Anda amati sebelumnya di Perangkat dan Printer.
  5. Di menu Alat yang sama, Setel Prosesor ke ATmega328P (Old Bootloader).
  6. Unduh kode yang terlampir di bawah ini dan tempelkan ke Arduino IDE Anda. Klik pada unggah tombol untuk membakar kode pada papan mikrokontroler Anda.

Untuk mengunduh kodenya, klik di sini.

Langkah 7: Memahami Kode

Kode yang digunakan dalam proyek ini sangat sederhana dan dikomentari dengan cukup baik. Ada dua file kode di folder terlampir. Kode untuk pemancar dan kode untuk sisi penerima keduanya diberikan secara terpisah. Kami akan mengunggah kode-kode ini di kedua papan Arduino masing-masing. Meskipun cukup jelas, ini dijelaskan secara singkat di bawah ini.

Kode Untuk Sisi Pemancar

1. Di awal, pin papan Arduino diinisialisasi yang akan dihubungkan ke Sensor Ultrasonik. Kemudian variabel dideklarasikan yang akan digunakan untuk menyimpan nilai untuk kalkulasi waktu dan jarak selama run time kode.

// mendefinisikan nomor pin const int trigPin = 9; // Hubungkan pin trigonometri sensor ultrasonik ke pin9 Arduino const int echoPin = 10; // Hubungkan pin eko sensor ultrasonik ke pin10 dari Arduino // menentukan durasi variabel; // variabel untuk menyimpan waktu yang dibutuhkan oleh gelombang ultrasonik t perjalanan jarak int; // variabel untuk menghitung jarak toko

2. batal penyiapan ()adalah fungsi yang hanya berjalan satu kali di awal saat papan dinyalakan atau tombol aktifkan ditekan. Di sini kedua pin Arduino dinyatakan digunakan sebagai MEMASUKKAN dan KELUARAN. Baudrate diatur dalam fungsi ini. Baud rate adalah kecepatan dalam bit per detik yang digunakan mikrokontroler untuk berkomunikasi dengan sensor ultrasonik.

batal penyiapan () {pinMode (trigPin, OUTPUT); // Menetapkan trigPin sebagai Output pinMode (echoPin, INPUT); // Menetapkan echoPin sebagai Input Serial.begin (9600); // Memulai komunikasi serial}

3. void loop ()adalah fungsi yang berjalan berulang kali dalam satu putaran. Di sini kami telah mengkodekan mikrokontroler sehingga mengirimkan sinyal TINGGI ke pin Pemicu sensor ultrasonik, kecerdasan selama 20 mikrodetik dan mengirim sinyal RENDAH ke sana.

void loop () {// Menyetel trigPin pada status HIGH selama 10 mikro detik digitalWrite (trigPin, HIGH); // kirim sinyal TINGGI pada pemicu sensor pertama delayMicroseconds (10); // tunggu 10 mikro detik digitalWrite (trigPin, LOW); // kirim sinyal RENDAH ke pemicu penundaan sensor pertama (2); // tunggu 0,2 detik}

Kode Untuk Sisi Penerima

1. Di awal, pin papan Arduino diinisialisasi yang akan dihubungkan ke Sensor Ultrasonik. Kemudian variabel dideklarasikan yang akan digunakan untuk menyimpan nilai untuk kalkulasi waktu dan jarak selama run time kode.

// mendefinisikan nomor pin const int trigPin = 9; // Hubungkan pin trigonometri sensor ultrasonik ke pin9 Arduino const int echoPin = 10; // Hubungkan pin eko sensor ultrasonik ke pin10 dari Arduino // menentukan durasi variabel; // variabel untuk menyimpan waktu yang dibutuhkan oleh gelombang ultrasonik t perjalanan jarak int; // variabel untuk menghitung jarak toko

2. batal penyiapan ()adalah fungsi yang hanya berjalan satu kali di awal saat papan dinyalakan atau tombol aktifkan ditekan. Di sini kedua pin Arduino dinyatakan digunakan sebagai INPUT dan OUTPUT. Baudrate diatur dalam fungsi ini. Baud rate adalah kecepatan dalam bit per detik yang digunakan mikrokontroler untuk berkomunikasi dengan sensor ultrasonik.

void setup() { pinMode(trigPin, OUTPUT); // Menetapkan trigPin sebagai Output pinMode (echoPin, INPUT); // Menetapkan echoPin sebagai Input Serial.begin (9600); // Memulai komunikasi serial}

3. batal Trigger_US () adalah fungsi yang akan dipanggil untuk Fake Triggering dari pin trigonometri sensor ultrasonik kedua. Kami akan menyinkronkan waktu pemicu pin trigonometri kedua sensor.

void Trigger_US () {// Fake trigger the US sensor digitalWrite (trigPin, HIGH); // Kirim sinyal TINGGI ke pin pemicu Sensor kedua delayMicroseconds (10); // tunggu 10 mikro detik digitalWrite (trigPin, LOW); // kirim sinyal RENDAH ke pin pemicu pengirim kedua}

4. void Calc ()merupakan fungsi yang digunakan untuk menghitung waktu yang dibutuhkan oleh sinyal ultrasonik untuk melakukan perjalanan dari sensor pertama ke sensor kedua.

void Calc () // berfungsi untuk menghitung waktu yang dibutuhkan gelombang ultrasonik untuk melakukan perjalanan {durasi = 0; // durasi awalnya disetel ke nol Trigger_US (); // panggil fungsi Trigger_US while (digitalRead (echoPin) == HIGH); // sedangkan status pin eo dalam delay tinggi (2); // tunda 0,2 detik Trigger_US (); // panggil fungsi Trigger_US durasi = pulseIn (echoPin, HIGH); // hitung waktu yang dibutuhkan}

5. Di sini, di void loop ()fungsi, kita menghitung jarak dengan menggunakan waktu yang dibutuhkan oleh sinyal ultrasonik untuk melakukan perjalanan dari sensor pertama ke sensor kedua.

void loop () {Pdistance = distance; Calc (); // panggil fungsi Calc () jarak = durasi * 0,034; // menghitung jarak yang ditempuh gelombang ultrasonik if (Pdistance == distance || Pdistance == distance + 1 || Pdistance == distance-1) {Serial.print ("Measured Distance:"); // cetak pada monitor serial Serial.println (jarak / 2); // cetak di monitor serial} //Serial.print("Distance: "); //Serial.println(distance/2); penundaan (500); // tunggu 0,5 detik}
Facebook Twitter Google Plus Pinterest