Senin, 31 Oktober 2016

Interfacing HC-SR04 ultrasonic ranging module NodeMCU V1.0 (Arduino IDE)

Ultrasonic ranging module HC - SR04 menyediakan fungsi pengukuran  jarak 2cm - 400cm, dengan tingkat akurasi sampai dengan 3mm. Module ini terdiri dari pemancar ultrasonic, penerima ultrasonic dan unit kendali.

Gambar 1. Module ultrasonic ranging HC-SR04 


Gambar 2. Prinsip kerja module HC-SR04

Prinsip dasar kerja dari module ini:
  1. Menggunakan IO untuk memicu sinyal High pada  pin Trigger paling sedikitnya 10us
  2. Module secara otomatis mengirimkan delapan pulsa 40 kHz
  3. Module mendeteksi pulsa pantulan balik.
  4. Jika ada pantulan balik, durasi waktu tingkat tinggi adalah mulai dari pengiriman utrasonic sampai dengan sinyal balik dalam ukuran mikro detik, sehingga jarak dapat dihitung dengan formula untuk dalam meter
range (meter) = (high level time×velocity of sound (340,2 m/s)) / 2

atau  dalam centimeter

range (cm) = uS / 58.2

atau inchi


range (inch) = uS / 148


Catatan: kecepatan suara (1 Mach) adalah 340,2 meter/detik 


 Gambar 3. Fungsi Pin pada HC-SR 04

Hal yang perlu diperhatikan:
  1. Tidak disarankan modul pin VCC dipasang langsung ke sumber arus, jika memang harus dilakukan, maka pasang pin GND terlebih dahulu, karena dapat mempengaruhi kerja normal dari modul,
  2. Ukuran area objek pengujian tidak kurang dari 0,5 meter persegi dan permukaan adalah sehalus mungkin karena dapat mempengaruhi hasil pengukuran.
  3. Disarankan untuk menggunakan siklus pengukuran diatas 60 ms, untuk mencegah sinyal trigger mengganggu sinyal echo.

Langkah-langkah:
  1. Hubungkan pin VCC ke sumber tegangan 5volt (dalam hal ini saya menggunakan keluaran dari board 5V pada board Arduino saya), pada beberapa situs memberi contoh VCC ke sumber tegangan 3V3 pada board NodeMCU, ternyata setelah saya coba, sensor tidak memberikan hasil yang benar.
  2. Hubungan pin GND ke GND sumber tegangan
  3. Pin Trigger ke D5 pada board NodeMCU
  4. Pin Echo ke D6 pada board NodeMCU
  5. Lakukan koding berikut ini:
const int triggerPin = D5; // Trigger Pin
const int echoPin = D6;   // Echo Pin

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

int maximumRange = 400; // Maximum range needed adalah 4 meter
int minimumRange = 2; // Minimum range needed adalah 2 cm
float duration, distance; // Duration used to calculate distance

void loop() {
  //trigger pulsa ultrasonic
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH); //mengirim sinyal high selama 10 mikro detik ke pin Trigger

  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW); //hentikan sinyal ke pin Trigger
  

  //baca durasi pantulan ultrasonic
  duration = pulseIn(echoPin, HIGH); //baca durasi dari pin Echo (durasi dalam mikro detik)

  //hitung jarak dalam cm, lihat formulasi untuk centimeter
  distance = duration/58.2;

  if (distance >= maximumRange || distance <= minimumRange){
    Serial.println("HC-SR 04 sensor out of measurement range");
  }
  else {
    Serial.print("Distance:");
    Serial.print(distance);
    Serial.println("cm");
  }
  delay(100); //jarak antar pengukuran diatas 60 ms, mencegah bercampurnya sinyal trigger dan echo
}


6. Lakukan verify
7. Lakukan upload
8. Buka layar serial monitor dengan 9600 baud.



Gambar 4. Hasil monitor

Salam,
Hendra.

Tidak ada komentar:

Posting Komentar