Sensor ultrasonik HC-SR04 menggunakan sonar untuk menentukan jarak terhadap sebuah objek, seperti yang dilakukan Kelelawar atau Lumba-lumba. Sensor ini memiliki akurasi yang cukup baik dan pembacaan yang cukup stabil. Operasionalnya tidak dipengaruhi oleh cahaya matahari atau material berwarna gelap, namun dipengaruhi oleh material akustik. Sensor ini memiliki spesifikasi jangkauan 2 cm – 400 cm dengan resolusi 0.3 cm, serta jangkauan sudut kurang dari 15 derajat.
Walaupun spesifikasi-nya seperti yang disebutkan di atas, namun dalam praktik, kita perlu mencermatinya, khususnya ketika berhadapan dengan bidang pantul yang tidak tegak lurus, misal permukaan yang spherical atau bersudut. Dari sejumlah pengujian yang pernah dilakukan, perlu penempatan yang tepat ketika di-aplikasikan dalam aplikasi wall following robot.
Hal kedua yang perlu dicermati adalah siklus pembacaan. Catatan dalam datasheet, 60 ms. Jadi, perlu jeda 60 ms sebelum melakukan pengukuran berikutnya.
Ketika bekerja, HC-SR04 menarik arus ~ 15 mA dengan catu 5V.
Dengan merujuk pada timing diagram di atas, berikut adalah contoh program dengan software NS.One, dengan board berbasis AVR ATmega16, untuk membaca Sensor Ultrasonik HC-SR04:
#define echoPin 8 // Echo Pin #define trigPin 9 // Trigger Pin long duration, distance; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration/58; Serial.println(distance); delay(1000); }