HC-SR04 Ultrasonic Sensor

(2 reviews)

29.75 29.75 ZAR 29.75 VAT Included

30.43 VAT Included

Not Available For Sale

This combination does not exist.

Sensors BreakoutModule Navigation Sensor Electronics Module Measurement Distance

Internal Reference: SEN-032

HC-SR04 Ultrasonic Sensor

The HC-SR04 ultrasonic sensor uses sonar to determine the distance to an object like bats or dolphins do. It offers excellent range accuracy and stable readings in an easy-to-use package. Its operation is not affected by sunlight or black material like Sharp rangefinders are. Similar in performance to the SRF005 but with the low-price of a Sharp infrared sensor.

  • Power Supply:5V DC
  • Quiescent Current: <2mA
  • Effectual Angle: <15°
  • Ranging Distance: 2cm – 500 cm (5 meters)
  • Resolution: 0.3 cm

Basic use of the HC-SR04 Ultrasonic Sensor

Please see the datasheet for an excellent description of how the sensor operates.

HC-SR04 Datasheet

Using the HC-SR04 with an Arduino

Great Video here: http://vimeo.com/44836674

There is an Arduino library for the HC-SR04 that offers two ways to use the sensor. To install, download the “Ultrasonic Library” from this page, unzip the release package into your “arduino-0018/libraries/” folder. Open the Arduino IDE and include the library by Sketch-Import library-Ultrasonic. There is also an example sketch in File-Examples-Ultrasonic-UltrasonicDemo.

Ultrasonic Library

The library includes 3 functions:

1. Ultrasonic(int TP, int EP)

This is an initial function for the ultrasonic ranging module, choose the pins for module TRIG and ECHO pin. For example:


defines the digital pin 13 of Arduino as the TRIG pin of HC-SR04 and pin 12 for the ECHO pin.

2. long Timing()

This function triggers the ultrasonic module and returns the duration that the ECHO pin was held high. For example:

 long time; Ultrasonic hcsr; time = hcsr.Timing();

The distance of the object correlates to the time the ECHO pin is held high. The distance formula is:

Distance = ((Duration of high level)*(Sonic :340m/s))/2

3. long Ranging(int sys) — (sys: CM / INC)

If you don’t want to change the time into distance yourself, this function will help you get the distance immediately. This function has a parameter (using CM or ICN) that shows the distance in centimetres or inches. This function will call Timing() and you don’t need to use the Timing() before it. For example:

long distance; Ultrasonic hcsr; distance = hcsr.Ranging(CM); 

returns the distance in centimetres.

Library: HC-SR04_Library.zip

#include <NewPing.h>
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200

void setup() {

void loop() {
unsigned int uS = sonar.ping();
Serial.print("Ping: ");
Serial.print(uS / US_ROUNDTRIP_CM);