Gambar 1. Module ultrasonic ranging HC-SR04
Prinsip dasar kerja dari module ini:
- Menggunakan IO untuk memicu sinyal High pada pin Trigger paling sedikitnya 10us
- Module secara otomatis mengirimkan delapan pulsa 40 kHz
- Module mendeteksi pulsa pantulan balik.
- 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
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:
- 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,
- Ukuran area objek pengujian tidak kurang dari 0,5 meter persegi dan permukaan adalah sehalus mungkin karena dapat mempengaruhi hasil pengukuran.
- Disarankan untuk menggunakan siklus pengukuran diatas 60 ms, untuk mencegah sinyal trigger mengganggu sinyal echo.
Langkah-langkah:
- 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.
- Hubungan pin GND ke GND sumber tegangan
- Pin Trigger ke D5 pada board NodeMCU
- Pin Echo ke D6 pada board NodeMCU
- Lakukan koding berikut ini:
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.