HC-SR04: semua mengenai sensor ultrasonik

Penderia HC-SR04

Kadang-kadang perlu Ukur jarak dan untuk itu anda mempunyai beberapa sensor. Kami telah mendedikasikan artikel untuk membincangkan mengenai a sensor jarak ketepatan tinggi seperti VL52L0X. Sensor ini adalah jenis ToF dan berdasarkan pengukuran yang sangat tepat berkat lasernya. Tetapi jika ketelitian tidak begitu penting bagi anda dan anda mahukan sesuatu yang membolehkan anda mengukur jarak dengan harga yang rendah, kemungkinan lain adalah yang anda ada di hujung jari anda ialah HC-SR04.

Dalam kes Sensor jarak HC-SR04, jarak diukur dengan ultrasound. Sistem ini serupa dengan kaedah optik VL52L0X. Iaitu, ia dipancarkan, ada pantulan dan ia diterima, tetapi dalam kes ini, bukan laser atau IR, ia adalah ultrasound. Sekiranya anda meminati elektronik, robotik atau pembuat amatur, anda boleh menggunakannya untuk banyak projek DIY seperti sistem pengesanan halangan untuk robot, sensor kehadiran, dll.

Apakah HC-SR04?

Baiklah, sudah jelas, seperti yang telah saya komen dalam perenggan sebelumnya, HC-SR04 adalah sensor jarak ketepatan rendah berdasarkan ultrasound. Dengan itu memungkinkan untuk mengukur jarak dengan cara yang mudah dan cepat, walaupun pada prinsipnya biasanya tidak digunakan untuk itu. Selalunya, ia digunakan sebagai transduser untuk mengesan rintangan dan menghalangnya melalui mekanisme lain yang berkaitan dengan tindak balas sensor.

Kemunculan HC-SR04 sangat khas dan mudah dikenali. Di samping itu, ia adalah item yang sangat popular di Arduino starter kit dan diperlukan untuk banyak projek. Ia mudah dikenali kerana mempunyai dua "mata" yang sebenarnya merupakan alat ultrasound yang disatukan oleh modul ini. Salah satunya adalah pemancar ultrasound dan yang lain penerima. Ia berfungsi pada frekuensi 40 Khz, oleh itu ia tidak dapat didengar oleh manusia.

Prinsip Sensor Ultrasonik

Prinsip di mana Ini berdasarkan simulasi yang digunakan ketika anda membuang batu ke dalam sumur untuk mengukur kedalamannya. Anda membuang batu dan masa berapa lama untuk jatuh ke bawah. Kemudian anda melakukan pengiraan kelajuan untuk masa yang berlalu dan anda mendapat jarak yang dilalui batu tersebut. Tetapi dalam kes itu sensor adalah anda.

ESP8266
artikel berkaitan:
ESP8266: modul WIFI untuk Arduino

Dalam HC-SR04, pemancar akan memancarkan ultrasound dan ketika mereka memantul dari objek atau halangan dalam cara mereka akan ditangkap oleh penerima. The litar akan melakukan pengiraan yang diperlukan gema itu untuk menentukan jarak. Perkara ini mungkin tidak asing bagi anda jika anda mengetahui sistem yang digunakan oleh beberapa haiwan seperti ikan lumba-lumba, ikan paus atau kelawar untuk mencari halangan, mangsa, dll.

Dengan menghitung waktu sejak nadi dihantar sehingga tindak balas diterima, masa dan oleh itu jarak dapat ditentukan dengan tepat. Ingat itu [Ruang = masa halaju] tetapi dalam kasus HC-SR04, anda mesti membagi kuantiti ini dengan / 2, kerana waktunya telah diukur dari ketika ultrasound keluar dan bergerak melalui ruang sehingga mencapai halangan dan jalan kembali, jadi kira-kira separuh daripada ini ...

Pinout dan lembaran data

Anda sudah tahu bahawa untuk melihat data lengkap model yang telah anda perolehi, yang terbaik adalah cari lembaran data konkrit pengeluar. Sebagai contoh, berikut adalah Lembaran data Sparkfun, tetapi terdapat banyak lagi yang terdapat dalam PDF. Walau bagaimanapun, berikut adalah data teknikal terpenting HC-SR04:

  • pinout: 4 pin untuk kuasa (Vcc), pemicu (Pemicu), penerima (Gema) dan tanah (GND). Pencetus menunjukkan kapan sensor harus diaktifkan (ketika ultrasound dilancarkan), dan dengan demikian dapat diketahui waktu yang berlalu ketika penerima menerima isyarat.
  • makan: 5 V
  • Kekerapan ultrabunyi: 40 Khz, telinga manusia hanya dapat mendengar dari 20Hz hingga 20Khz. Semua yang berada di bawah 20Hz (infrasound) dan di atas 20Khz (ultrasound) tidak akan dapat dilihat.
  • Penggunaan (siap sedia): <2mA
  • Penggunaan berfungsi: 15mA
  • Sudut berkesan: <15º, bergantung pada sudut objek anda mungkin mempunyai hasil yang lebih baik atau lebih buruk.
  • Jarak yang diukur: dari 2cm hingga 400cm, walaupun dari 250 cm resolusi tidak akan sangat baik.
  • Resolusi sederhana: Variasi 0.3 cm antara jarak sebenar dan pengukuran, jadi walaupun tidak dianggap sangat tepat seperti laser, pengukuran tersebut dapat diterima untuk kebanyakan aplikasi.
  • harga: dari sekitar € 0,65

Integrasi dengan Arduino

HC-SR04 dengan Arduino

kepada menghubungkannya ke Arduino tidak mungkin lebih mudah. Anda hanya perlu bertanggungjawab untuk menyambungkan GND ke output yang sesuai dari Arduino anda yang ditandai seperti itu, Vcc dengan bekalan kuasa Arduino 5v dan dua pin lain dari HC-SR04 dengan input / output yang dipilih untuk projek anda. Anda dapat melihat bahawa itu mudah dalam skema Fritzing atas ...

Anda hanya perlu mempunyai satu pertimbangan, bahawa harimau mesti menerima denyutan elektrik sekurang-kurangnya 10 mikrodetik untuk mengaktifkannya dengan betul. Sebelum ini anda mesti memastikan bahawa ia berada dalam nilai RENDAH.

Untuk kod untuk Arduino IDE, anda tidak perlu menggunakan perpustakaan atau yang serupa dengan komponen lain. Cukup buat formula untuk mengira jarak dan sedikit lagi ... Sudah tentu, jika anda mahu projek anda melakukan sesuatu sebagai tindak balas terhadap pengukuran sensor HC-SR04, anda perlu menambahkan kod yang anda perlukan. Sebagai contoh, daripada hanya memaparkan pengukuran pada konsol, anda boleh membuat servomotor bergerak dalam satu arah atau yang lain untuk jarak tertentu untuk mengelakkan halangan, atau agar motor berhenti, penggera akan diaktifkan ketika mengesan jarak, dll. .

 Lebih banyak maklumat mengenai pengaturcaraan: Manual Arduino (PDF Percuma)

Contohnya, anda dapat melihatnya kod asas untuk digunakan sebagai asas:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


Komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Jose kata

    Saya dapati penjelasannya sangat berguna dan mudah.