HC-SR04 Ultrasonic Sensor Jarak – Belajar Arduino 101

HC-SR04 adalah sejenis sensor Analog Ultrasonic yang dapat memberikan bacaan jarak suatu objek dari sensor pada jarak 2 cm hingga 4m.

Ia adalah antara sensor yang paling famous dan paling murah digunakan oleh DIY-ers bagi memberikan bacaan jarak suatu objek dari sensor.

Sensor Ultrasonic ini adalah jenis sensor yang sama digunakan oleh Sistem Reverse-Sensor kereta.

Bagaimana Sensor Ultrasonic HC-SR04 Berfungsi ?

Sensor HC-SR04 dilengkapi dengan 2 unit Ultrasonic Transducer, di mana 1 unit Transducer berfungsi memancarkan gelombang Ultrasonic pada kelajuan bunyi, iaitu pada kelajuan 340 m/s,

dan unit Transducer ke-2 berfungsi untuk menerima kembali gelombang Ultrasonic yang terpantul semula dari objek yang di-detect.

Bagaimana Jarak Di kira ?

Kelajuan gelombang Ultrasonic yang dipancarkan dan terpantula semula adalah sama, iaitu, keduanya adalah pada kelajuan 340 m/s.

Dengan Arduino, kita dapat mengukur masa dari mula gelombang dipancarkan, sehingga gelombang Echo kembali.

Jumlah masa ini adalah gabungan masa pergi dan kembali.

Seperti dalam contoh di atas, dengan jarak 400cm, jumlah bacaan masa yang akan diterima oleh Arduino akan bersamaan dengan

Menggunakan pulseIn()

Bagi pembelajaran peringkat awal, amat mudah untuk menggunakan fungsi pulseIn() pada Arduino untuk mendapatkan bacaan return-echo. Namun, dalam aplikasi menggunakan pulseIn() dalam projek-projek DIY, ia akan mengganggu kelajuan Void Loop, di mana loop akan terhenti pada code pulseIn() sehingga ia menerima bacaan pulse. Ada masanya ia mengambil masa sehingga 1 ~ 2 saat sebelum menerima incoming pulse dari HC-SR04.

Ini tidak bagus untuk projek-projek, kerana 1 ~ 2 saat adalah masa yang lama, dan sesetengah projek memerlukan bacaan butang input dan juga kawalan pergerakan motor yang konsisten iaitu hampir setiap 100ms.

Dengan masa menunggu 1 ~ 2 saat, void Loop akan terhenti, dan apa sahaja coding lain tidak akan berfungsi selagi pulse tidak diterima.

Coding untk Ultrasonic HC-SR04

//HC-SR04 Ultrasonic Range Sensor Module
//Code disediakan oleh MatGyver.my

const int TrigPin = 7;   //variable declare pin Trigger pada pin 7
const int EchoPin = 8;   //variable declare pin Trigger pada pin 8
float jarak = 0.0;       //variable untuk simapn nilai jarak dalam cm                                                                                         

void setup() {
  Serial.begin(9600);
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);      
}//end void setup

void loop(){
  bacaSensor();
     
  Serial.print("  Jarak (cm): "); //print nilai jarak pada Serial Monitor
  Serial.print(jarak);
  Serial.println();                              
  
}//end void loop

void bacaSensor() {

    long tempoh, cm;

    digitalWrite(TrigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(TrigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(TrigPin, LOW);

    tempoh = pulseIn(EchoPin, HIGH); //mengukur tempoh pin Echo bertukar dari High/Low

    cm = tempoh/(29.0*2.0); //formula convert tempoh transmit/receive pada jarak
    jarak = cm;
  
}

Published by Mat Gyver

Peneraju Komuniti Digital Maker Malaysia. Pembangunan Komuniti diUtamakan.

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: