norr@manorshi.com         +86-519-89185720
1
Pusat Berita

Bagaimana untuk menggunakan sensor ultrasonik dengan Arduino?

Pandangan: 164     Pengarang: Grace Masa Terbit: 2021-07-26 Asal: tapak

butang perkongsian facebook
butang perkongsian twitter
butang perkongsian talian
butang perkongsian wechat
butang perkongsian linkedin
butang perkongsian pinterest
butang perkongsian whatsapp
butang perkongsian kakao
butang perkongsian snapchat
butang perkongsian telegram
kongsi butang perkongsian ini

Cara Menggunakan Penderia Ultrasonik dengan Arduino: Panduan HC-SR04

The Sensor ultrasonik HC-SR04 ialah salah satu modul pengukuran jarak yang paling popular untuk projek Arduino. Ia digunakan secara meluas dalam robot pengelakan halangan, penderia tempat letak kereta, pengesanan aras, tong sampah pintar, meter jarak dan aplikasi pengesan bukan hubungan yang lain.

Modul ini memancarkan gelombang ultrasonik 40kHz melalui pemancar. Apabila gelombang bunyi bertemu dengan objek, ia memantul kembali kepada penerima. Dengan mengukur masa gema dan menggunakan kelajuan bunyi, Arduino boleh mengira jarak antara sensor dan objek.

Modul sensor ultrasonik HC-SR04 untuk pengukuran jarak Arduino

HC-SR04 Parameter Teknikal Utama

Parameter Nilai
Voltan kerja biasa 5V DC
Arus kerja statik Kurang daripada 5mA pada beberapa versi modul
Kekerapan operasi Gelombang ultrasonik 40kHz
Jarak pengesanan Julat biasa: 2cm hingga 400cm; sesetengah versi pelarasan keuntungan mungkin menyokong julat yang lebih panjang.
Sudut pengesanan Biasanya dalam 15 darjah; sesetengah versi dengan keuntungan yang lebih tinggi mungkin mencapai kira-kira 30 darjah.
Ketepatan Sehingga kira-kira 0.3cm di bawah keadaan ujian yang sesuai
Zon buta Kira-kira 2cm jarak ukur minimum

Penerangan Pin HC-SR04

Modul ultrasonik HC-SR04 mempunyai empat pin: VCC, TRIG, ECHO, dan GND. Arduino menghantar nadi pencetus pendek ke pin TRIG, kemudian membaca nadi kembali dari pin ECHO.

Pin HC-SR04 Sambungan Arduino Fungsi
VCC 5V Bekalan kuasa untuk modul ultrasonik.
TRIG Pin digital 9 Input pencetus. Arduino menggunakan nadi 10us untuk memulakan julat.
ECHO Pin digital 10 Keluaran gema. Arduino membaca lebar nadi untuk mengira jarak.
GND GND Sambungan tanah.

HC-SR04 sensor ultrasonik pinout VCC TRIG ECHO GND

Prinsip Kerja Penderia Ultrasonik HC-SR04

HC-SR04 berfungsi mengikut ukuran masa penerbangan. Arduino menghantar isyarat pencetus tahap tinggi sekurang-kurangnya 10 mikrosaat ke pin TRIG. Modul kemudian secara automatik menghantar lapan denyutan ultrasonik 40kHz dan menunggu gema yang dipantulkan.

Apabila isyarat ultrasonik yang dipantulkan dikesan, pin ECHO mengeluarkan nadi peringkat tinggi. Tempoh nadi ini ialah masa perjalanan pergi balik gelombang ultrasonik.

Jarak = Gema masa aras tinggi × Kelajuan bunyi / 2

Dalam kod Arduino, formula ringkas yang biasa ialah:

Jarak dalam cm = tempoh × 0.0343 / 2

Masa modul ultrasonik HC-SR04 prinsip kerja penerbangan

Rajah Masa Modul Ultrasonik HC-SR04

Proses pemasaan adalah mudah: Arduino mengekalkan TRIG rendah secara ringkas, menghantar nadi tinggi 10us, kemudian mengembalikan TRIG kepada rendah. HC-SR04 menghantar letupan ultrasonik dan menetapkan ECHO tinggi sehingga isyarat yang dipantulkan kembali atau masa pengukuran tamat.

Untuk mengelakkan bacaan tidak stabil, tinggalkan kelewatan yang singkat antara pengukuran. Kitaran pengukuran kira-kira 60ms biasanya digunakan supaya gema ultrasonik sebelumnya mempunyai masa untuk hilang sebelum pencetus seterusnya.

Asas Pengaturcaraan Arduino: Fungsi pulseIn

Fungsi Arduino pulseIn() digunakan untuk mengukur berapa lama pin digital kekal TINGGI atau RENDAH. Untuk HC-SR04, Arduino menggunakan pulseIn(echoPin, HIGH) untuk membaca lebar nadi peringkat tinggi daripada pin ECHO.

Sintaks Maknanya
pulseIn(pin, nilai) Membaca tempoh nadi TINGGI atau RENDAH.
pulseIn(pin, nilai, tamat masa) Membaca nadi dengan nilai tamat masa dalam mikrosaat.

Menggunakan tamat masa adalah disyorkan. Jika tiada gema dikembalikan, fungsi boleh berhenti menunggu dan mengembalikan 0 dan bukannya menyekat program terlalu lama.

Papan Arduino digunakan dengan sensor jarak ultrasonik HC-SR04

Cara Menyambung Sensor Ultrasonik HC-SR04 ke Arduino

Pendawaian adalah mudah. Sambungkan VCC ke 5V, GND ke GND, TRIG ke pin output digital Arduino dan ECHO ke pin input digital Arduino. Contoh berikut menggunakan Arduino Uno, TRIG pada pin 9, dan ECHO pada pin 10.

Gambar rajah pendawaian papan roti Arduino Uno untuk sensor ultrasonik HC-SR04

Kod Arduino Sensor Ultrasonik HC-SR04

Program Arduino biasa berikut menghantar nadi pencetus 10us, membaca lebar denyut ECHO, mengira jarak dalam sentimeter, dan mencetak hasilnya dalam Monitor Bersiri.

const int trigPin = 9; const int echoPin = 10; tempoh yang panjang; jarak apunganCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   kelewatanMikrosaat(2);   digitalWrite(trigPin, HIGH);   kelewatanMikrosaat(10);   digitalWrite(trigPin, LOW);   tempoh = pulseIn(echoPin, HIGH, 30000);   if (tempoh == 0) { Serial.println('Di luar julat');   } lain { jarakCm = tempoh * 0.0343 / 2;     Serial.print('Jarak: ');     Serial.print(jarakCm);     Serial.println(' cm');   } kelewatan(60); }

Jika anda melihat nilai jarak dalam Monitor Bersiri, sensor ultrasonik HC-SR04 dan pendawaian Arduino berfungsi dengan betul. Anda kemudian boleh menggunakan data jarak untuk pengesanan halangan, kawalan pergerakan robot, pintu automatik, peringatan tempat letak kereta atau projek tahap cecair.

Program julat sensor ultrasonik Arduino HC-SR04

Cara Meningkatkan Ketepatan Pengukuran HC-SR04

  • Pastikan objek yang diukur dalam julat jarak yang disyorkan dan di luar zon buta 2cm.

  • Gunakan permukaan sasaran yang rata dan pepejal untuk pantulan ultrasonik yang lebih baik.

  • Elakkan mengukur bahan lembut, bersudut, berliang atau menyerap bunyi.

  • Gunakan bekalan kuasa 5V yang stabil dan pastikan pendawaian pendek dan selamat.

  • Tambahkan tamat masa pada pulseIn() untuk mengelakkan sekatan lama apabila tiada gema kembali.

  • Purata atau median-tapis beberapa bacaan untuk mengurangkan bunyi.

  • Untuk ketepatan yang lebih tinggi, beri pampasan untuk suhu kerana kelajuan bunyi berubah mengikut suhu udara.

Aplikasi Biasa Projek Sensor Ultrasonik Arduino

Permohonan Bagaimana HC-SR04 Digunakan
Robot mengelak halangan Mengesan objek berdekatan dan membantu robot menukar arah.
Sensor jarak letak kereta Mengukur jarak antara kenderaan dengan halangan.
Pengesanan paras cecair Mengukur jarak dari sensor ke permukaan cecair tanpa sentuhan.
Tong sampah pintar Mengesan tangan atau objek berdekatan dan mencetuskan pembukaan penutup automatik.

Ringkasan

Untuk menggunakan sensor ultrasonik HC-SR04 dengan Arduino, sambungkan VCC ke 5V, GND ke GND, TRIG ke pin output digital dan ECHO ke pin input digital. Hantar nadi pencetus 10us, baca tempoh gema dengan pulseIn(), dan hitung jarak dengan formula masa penerbangan.

HC-SR04 adalah murah, mudah digunakan dan sesuai untuk banyak projek pengukuran jarak Arduino. Untuk hasil terbaik, beri perhatian kepada permukaan sasaran, sudut pengukur, zon buta, kuasa stabil, pengendalian tamat masa dan kesan suhu.

Soalan Lazim Mengenai Penderia Ultrasonik Arduino HC-SR04

Bagaimanakah sensor ultrasonik HC-SR04 berfungsi dengan Arduino?

Arduino menghantar nadi 10us ke pin TRIG. HC-SR04 memancarkan lapan denyutan ultrasonik 40kHz dan menetapkan pin ECHO tinggi sehingga bunyi yang dipantulkan kembali. Arduino mengukur masa nadi ini dan mengira jarak.

Apakah formula jarak untuk projek Arduino HC-SR04?

Formulanya ialah jarak = tempoh × kelajuan bunyi / 2. Dalam sentimeter, formula Arduino biasa ialah jarakCm = tempoh × 0.0343 / 2, di mana tempoh diukur dalam mikrosaat.

Mengapa kita membahagikan hasil sensor ultrasonik dengan 2?

Masa gema yang diukur ialah masa pergi balik dari sensor ke objek dan kembali ke sensor. Membahagi dengan 2 memberikan jarak sehala antara penderia dan objek.

Pin Arduino manakah yang patut saya gunakan untuk TRIG dan ECHO?

Anda boleh menggunakan kebanyakan pin digital Arduino. Dalam banyak contoh, TRIG disambungkan ke pin digital 9 dan ECHO disambungkan ke pin digital 10. Kod mesti sepadan dengan pin yang digunakan dalam pendawaian anda.

Mengapa penderia ultrasonik HC-SR04 saya mengembalikan sifar atau nilai rawak?

Punca biasa termasuk pendawaian longgar, kuasa 5V yang tidak stabil, nombor pin TRIG atau ECHO yang salah, tiada objek dalam julat, permukaan sasaran bersudut, bahan lembut, kepala sensor terhalang atau tiada masa tamat dalam fungsi pulseIn().

Apakah zon buta sensor ultrasonik HC-SR04?

Zon buta ialah jarak minimum di mana modul tidak dapat mengukur dengan pasti. Untuk HC-SR04, zon buta biasanya kira-kira 2cm. Objek yang lebih dekat daripada ini mungkin menghasilkan bacaan yang tidak stabil.

Bolehkah HC-SR04 mengukur paras air dengan Arduino?

Ya, HC-SR04 boleh digunakan untuk projek paras air tanpa sentuhan yang mudah jika penderia dilindungi daripada kelembapan dan dipasang di atas permukaan cecair. Untuk tangki lembap, luar atau industri, penderia ultrasonik kalis air disyorkan.

Bagaimanakah saya boleh menjadikan bacaan sensor ultrasonik Arduino lebih stabil?

Gunakan bekalan kuasa yang stabil, pastikan penderia berserenjang dengan sasaran, elakkan permukaan lembut atau bersudut, tambah nadiDalam tamat masa, ambil berbilang bacaan, gunakan penapisan median dan biarkan kira-kira 60ms antara ukuran.

Jadual Kandungan