Pengukuran Jarak Menggunakan Sensor Arduino dan Ultrasonik
Proyek Pengukuran Jarak Ultrasonik menggunakan Arduino
Pengukuran Jarak Ultrasonik adalah alat yang berguna dalam berbagai aplikasi akhir-akhir ini. Ini dapat digunakan dalam berbagai aplikasi seperti penentuan posisi, lokasi, dimensi, pemilihan, pengukuran level, pengontrolan, dan pembuatan profil. Dengan melakukan beberapa perhitungan matematis dengan nilai output kita juga dapat mengukur kecepatan dan berbagai dimensi fisik lainnya. Perangkat ini juga memiliki aplikasi di bidang robotika.
Jadi dengan mengingat aplikasi ini, Sensor Ultrasonik adalah alat yang hebat untuk mengukur jarak tanpa melakukan kontak fisik untuk jarak kecil. Mereka menggunakan konsep ECHO untuk mengukur jarak. Dalam proyek ini, kita akan mempelajari cara mengukur jarak dengan menghubungkan modul sensor HC-SR04 dengan Arduino dan menampilkan jarak pada LCD 16×2.
- Postingan Terkait: Supply Daya Variabel Menggunakan Arduino UNO – Sirkuit dan Kode
Diagram Sirkuit Proyek Pengukuran Jarak

Antarmukanya sangat sederhana. Anda hanya perlu mengikuti diagram sirkuit. Jadi pertama-tama, pin Trig dan Echo sensor ultrasonik terhubung ke A4 dan A5 Arduino UNO dan VCC dan GND terhubung ke 5V dan GND Arduino.
Sekarang, kita akan menampilkan jarak pada LCD 16x2 yang terhubung dengan Arduino. Hubungkan pin RS dan EN ke pin digital 12 dan pin digital 11 Arduino masing-masing. Sekarang hubungkan D4-D7 LCD ke pin digital 5-2 Arduino. Kami juga telah menghubungkan potensiometer 10K untuk mengontrol kontras LCD seperti yang ditunjukkan pada diagram rangkaian.
- Postingan Terkait: Bel Pintu Otomatis dengan Deteksi Objek Oleh Arduino
Komponen yang Diperlukan
- Modul Sensor Ultrasonik HC-SR04
- Arduino UNO
- LCD 16×2
- Potensiometer
- Kabel Jumper dan Kabel Penghubung
Modul Sensor Ultrasonik
Modul sensor yang digunakan di sini adalah HC-SR04 , yang merupakan perangkat pengukuran Ultrasonik non-kontak. Modul kecil ini mampu mengukur jarak dalam rentang 2cm – 400cm. Ini adalah sensor yang sangat akurat, dapat mengukur hingga 3mm.
Sensor terdiri dari pemancar ultrasonik dan penerima ultrasonik. Prinsip kerjanya sangat sederhana. Pertama, pemicu IO mengirimkan sinyal tingkat tinggi selama 10 detik. Kemudian modul sensor mengirimkan delapan siklus 40 kHz suara ultrasonik dan mendeteksi apakah sinyal pulsa diterima kembali atau tidak. Dan jika sinyal diterima, melalui level tinggi, durasi waktu pemicu IO tetap tinggi adalah waktu dari mengirim hingga menerima sinyal.
Jarak =(Waktu Tingkat Tinggi x Kecepatan Suara di Udara (340M/dtk))/2
- Postingan Terkait: Lampu Malam Otomatis Menggunakan Arduino
Diagram Waktu
Seperti yang dibahas di atas, modul bekerja pada ECHO suara. Untuk memicu modul, pulsa dikirim sekitar 10μs. Setelah proses ini, modul mengirimkan delapan siklus 40 kHz suara ultrasonik dan memeriksa pantulannya. Jadi, jika ada kendala maka sinyal menyerang dan kembali ke penerima. Dan sekarang jarak dihitung dengan rumus sederhana yang dibahas di atas. Kami membaginya dengan 2 karena waktu ini adalah waktu total untuk mencapai rintangan dan kembali ke penerima sehingga waktu yang dibutuhkan untuk mencapai rintangan adalah setengah dari total waktu. Diagram waktu dari sensor ini diberikan di bawah ini:
Spesifikasi Teknis
- Tegangan Operasi:5V
- Arus Operasi:15mA
- Frekuensi Operasi:40Hz
- Sudut Pengukuran:15°
- Rentang:2cm hingga 400cm
Pin-Out Sensor Ultrasonik HC-SR04
- VCC:Catu daya untuk modul (Biasanya +5V)
- Trig:Digunakan untuk memicu modul.
- Echo:Ini adalah o/p pin. Tetap tinggi selama sinyal waktu berpindah dari pemancar ke penghalang dan kemudian kembali ke penerima.
- GND:Terhubung ke ground sirkuit utama.
Seperti yang dibahas di atas, modul ini bekerja berdasarkan prinsip ECHO suara. Jadi ketika kita menghubungkan modul dengan mikrokontroler apa pun, maka modul pertama-tama dipicu melalui pin Trig dan pulsa tingkat tinggi dikirim selama 10μs. Kemudian, kami menunggu untuk menerima ECHO. Mikrokontroler dapat menghitung waktu. Dan kemudian jarak dihitung dengan rumus yang dibahas di atas.
- Postingan Terkait: Apa itu Sirkuit Linggis ? Desain dan Pengoperasian
Arduino UNO
Arduino adalah mikrokontroler open source yang banyak digunakan di banyak proyek tertanam skala kecil dan besar. Arduino yang digunakan dalam proyek ini adalah Arduino-UNO. Alasan menggunakan Arduino ini adalah karena lebih murah dan mudah untuk antarmuka. Board menyediakan 14 pin I/O digital dan 6 pin analog. Mikrokontroler bersifat open source, jadi terserah pengguna bagaimana dia ingin menggunakannya. Anda dapat memodifikasi papan dan perangkat lunak sesuai dengan kebutuhan.
- Postingan Terkait: Sirkuit Proteksi Tegangan Lebih Sederhana menggunakan Dioda Zener
Modul LCD 16×2
Modul ini biasanya digunakan di banyak tempat dalam proyek yang disematkan, karena lebih murah dan mudah untuk berinteraksi dengan mikrokontroler. Anda mungkin pernah melihat jenis tampilan ini di kalkulator, mustimeter, dll. Modul LCD yang digunakan di sini dapat menampilkan 16 karakter berturut-turut dan memiliki dua baris. Jadi, pada dasarnya memiliki 16 kolom dan 2 baris. Setiap karakter yang ditampilkan terdiri dari 5×8 piksel (matriks piksel).
Jika Anda menghitung total piksel pada seluruh LCD maka hasilnya adalah 5x8x16x2=1280 piksel. Yang merupakan jumlah besar. Sekarang untuk menampilkan sesuatu pada LCD kita perlu menentukan posisi karakter juga. Jadi, itu benar-benar hal yang sulit untuk dilakukan. Jadi untuk mengatur kerja yang tepat, IC bernama HD44780 digunakan. IC ini mengambil data dan perintah dari mikrokontroler dan kemudian melakukan beberapa pemrosesan sehingga output yang diinginkan dapat dicetak pada LCD. IC ini membuat antarmuka LCD sangat mudah. Kami mungkin menggunakan LCD di banyak proyek kami untuk menampilkan output melalui sensor atau dari modul lainnya. Mari kita lihat beberapa spesifikasi teknis modul LCD.
- Pos Terkait: Sirkuit Konverter 12V ke 5V
- Tegangan Operasi:4,7V hingga 5,3V
- Konsumsi Saat Ini:1mA tanpa menggunakan lampu latar
- 2 baris dengan 16 karakter di setiap barisnya.
- Setiap karakter terdiri dari matriks 5x8 piksel.
- Tampilannya Alfanumerik sehingga dapat menampilkan angka serta huruf dan karakter khusus juga.
- Tersedia dalam varian lampu latar Hijau/Biru.
Mari kita lihat konfigurasi pin LCD.
Pinout dan Deskripsi LCD 16×2
Nomor Pin | Nama | Deskripsi |
1 | VSS | Ini adalah arde dan terhubung ke arde sirkuit. |
2 | VDD | Supply daya untuk LCD (4.7V hingga 5.3V), biasanya 5V |
3 | VE | Pin ini digunakan untuk memanipulasi kontras LCD. Untuk melakukannya, kita perlu menghubungkan potensiometer dengan pin ini. Jadi dengan mengatur kenop potensiometer kita bisa mendapatkan tingkat kontras yang berbeda pada tampilan. |
4 | RS | Pilih Daftar. Pin ini digunakan untuk menggeser antara perintah dan register data. Pin ini terhubung ke Mikrokontroler |
5 | RW | Baca/Tulis. Pin ini digunakan untuk membaca atau menulis ke LCD. Hal ini umumnya didasarkan untuk menulis data. |
6 | ID | Aktifkan pin. Pin ini terhubung dengan mikrokontroler dan diberi 1 atau 0 untuk mengakui data. |
7 | Pin data (0-7) | Pin ini digunakan untuk mengirim data 8-bit ke LCD dari mikrokontroler. LCD ini juga dapat digunakan dalam mode 4-bit. Untuk ini, Anda hanya perlu menghubungkan 4 pin data. |
8 | A | Anoda. Pin ini merupakan pin positif untuk backlight LCD. Ini sepenuhnya opsional untuk menggunakan pin ini. Gunakan jika Anda membutuhkan lampu latar. Konsumsi saat ini menjadi sangat sedikit jika Anda tidak menggunakan lampu latar seperti yang ditunjukkan dalam spesifikasi teknis. |
9 | K | Katoda. Pin ini adalah pin negatif untuk lampu latar LCD. |
Mari kita lihat antarmuka dasar LCD dengan Arduino. Kami akan mencetak beberapa teks pada LCD dengan menulis kode sederhana. Pertama hubungkan pin RS dan EN ke pin digital 12 dan 11 Arduino. Sekarang hubungkan pin D4-D7 LCD ke pin digital 5-2 Arduino. Sekarang hubungkan RW, VSS dan K dengan ground dan VDD dan A dengan 5V Arduino. Hubungkan potensiometer dengan VE seperti yang ditunjukkan pada diagram rangkaian untuk mengontrol kontras LCD.
- Postingan Terkait: Proyek Elektronik Kontrol Lampu Lalu Lintas menggunakan IC 4017 &555 Timer
Sekarang masuk ke bagian pengkodean. Pertama, kita perlu menyertakan library LiquidCrystal.h untuk LCD.
#include
Sekarang dalam dua baris berikutnya kami telah mendefinisikan variabel untuk pin data LCD yang terhubung dengan Arduino dan kemudian meneruskannya sebagai argumen dalam fungsi lcd sehingga kami dapat mengirim data dari Arduino ke LCD.
const int rs =12, en =11, d4 =5, d5 =4, d6 =3, d7 =2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Dalam fungsi Setup, kita telah menginisialisasi LCD dengan menggunakan fungsi lcd.begin(). Kami telah melewati 16 dan 2 karena LCD yang kami gunakan memiliki 16 kolom dan 2 baris serta kami menggunakan seluruh LCD. Jika Anda hanya membutuhkan sebagian dari LCD maka Anda dapat meneruskan argumen yang sesuai.
Selanjutnya, kami mencetak 'Halo, Dunia!' di baris berikutnya. Anda dapat mencetak pesan khusus yang ingin Anda cetak tetapi ingat satu hal, bahwa pesan yang melebihi ukuran tampilan akan dicetak di baris berikutnya. Jadi, manipulasi pesan Anda sebagaimana mestinya.
lcd.begin(16, 2);
lcd.print(“Halo, Dunia!”);
Dalam fungsi loop kita telah mengatur kursor ke posisi (0,1) dengan menggunakan fungsi lcd.setCursor(). Setelah ini, kami mencetak waktu pencetakan pesan.
lcd.setCursor(0, 1);
lcd.print(millis() / 1000);
Setelah menulis kode, unggah ke papan Arduino dan Anda akan melihat pesan tercetak di layar. Anda dapat mengubah kontras dengan memutar kenop potensiometer yang terhubung.
- Postingan Terkait: Sirkuit Sakelar Tepuk Menggunakan Timer IC 555 &Tanpa Timer
Memrogram Arduino untuk Pengukuran Jarak Sensor Ultrasonik
Bagian pengkodean sangat mudah untuk proyek ini. Mulailah dengan menyertakan file header untuk LCD.
#include <LiquidCrystal.h>
Dalam dua baris berikutnya, kita telah mendefinisikan makro untuk pin A4 (pin 18) dan A5 (pin 19) Arduino sehingga kita dapat menggunakan nama-nama tersebut daripada menggunakan pin angka.
#define trig 18
#define echo 19
Sekarang di baris berikutnya, kita telah mendefinisikan variabel untuk berbagai pin LCD yang terhubung ke Arduino dan kemudian meneruskannya ke fungsi lcd sehingga kita dapat menginisialisasi LCD.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Sekarang kita telah mendefinisikan variabel jarak 'd' dan variabel waktu 't' dan menginisialisasinya dengan 0.
float t=0,d=0;
Sekarang masuk ke fungsi setup. Pada baris pertama, kita telah menginisialisasi LCD dengan menggunakan lcd.begin() dan kemudian pada dua baris berikutnya kita telah mendefinisikan mode pin untuk pin trigger dan echo sebagai output dan input masing-masing.
void setup()
{
lcd.begin(16,2);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
}
Selanjutnya masuk ke fungsi loop. Pertama, kita telah mengosongkan LCD dengan fungsi lcd.clear() sehingga setelah setiap iterasi perulangan, keluaran sebelumnya tidak mempengaruhi keluaran saat ini. Sekarang di enam baris berikutnya, kami menginisialisasi sensor ultrasonik kami dengan mengirimkan pulsa tingkat tinggi selama 10μs. Dan seperti yang kita ketahui bahwa setelah ini, sensor secara otomatis mengirimkan delapan siklus 40kHz suara ultrasonik dan memeriksa pantulannya. Jadi di baris berikutnya, kami mengambil waktu dari sensor. Kemudian kita hitung jaraknya. Kami membaginya dengan 10.000 karena kecepatannya dalam meter/detik, jadi kami mengubahnya dalam sentimeter.
void loop()
{
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
t = pulseIn(echo, HIGH);
d = t * 0.0340 / 2;
d = t * 0.01330 / 2;
lcd.setCursor(0, 0);
lcd.print("Distance: ");
lcd.print(d);
lcd.print(" cm");
delay(1000);
}
- Pos Terkait: Diagram dan Operasi Saklar Lampu Kamar Mandi Otomatis
Kerja Rangkaian Pengukuran Jarak
Setelah menulis kode, unggah ke Arduino dan Anda sudah siap. Sekarang bawa benda atau tangan Anda di depan sensor. Periksa jarak pada LCD. Terus ubah jarak objek dari sensor dan Anda akan mendapatkan jarak akurat yang baik.
Saat kami menginisialisasi sensor dengan mengirimkan pulsa tingkat tinggi selama 10μs, sensor mengirimkan delapan siklus ultrasonik 40kHz dan jika siklus ini dipantulkan oleh hambatan apa pun maka mereka akan dipantulkan kembali ke penerima. Sekarang, sensor memberikan waktu yang dibutuhkan dalam perjalanan sinyal ultrasonik dari pemancar ke rintangan dan dari rintangan ke penerima. Jadi, kami menggunakan waktu ini untuk menghitung jarak antara sensor dan penghalang.
