Ultrasonic Sensor (HC-SR04) + Arduino

From ESE205 Wiki
Revision as of 02:37, 17 August 2018 by Ethanshry (talk | contribs) (Ethanshry moved page Controlling HC-SR04 Ultrasonic distance sensor with Arduino to Ultrasonic Sensor (HC-SR04) + Arduino: Fall 2018 Wiki Reworks)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


The HC-SR04 ultrasonic distance sensor uses sonar to determine distance to an object with stable readings and high accuracy of 3mm. The module includes ultrasonic transmitter, receiver and control circuit. In order to generate the ultrasound, you have to set the trig on high state for 10 microseconds. The trig pin will send out the sonic burst which travels at the speed of sound. The soundwave will be bounced back once it interacts with a solid or liquid and will then be received in the echo pin. The distance between the sensor and the object will be calculated using the time of travel. More explanations of work principles are outlined here if interested. One of the outstanding features of this distance sensor is that it can detect not only the distance between itself to a solid object, it can also detect liquids (used in the Cheers group).

If you are planning to use the Ultrasonic distance sensor on a Rasberry Pi instead of an Arduino, click here.


A sample code is outlined below. It uses an if-else statement to check if the distance is out of range (2cm-400cm). The Serial.print commands are used for the user to visually see the the measured distances. You can delete it in the final code for your project.

#define trigPin 10
#define echoPin 13

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

void loop() {
  float duration, distance;
  digitalWrite(trigPin, LOW); 
  digitalWrite(trigPin, HIGH);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) * 0.0344;
// see if the distance is out of range
  if (distance >= 400 || distance <= 2){
    Serial.print("Distance = ");
    Serial.println("Out of range");
  else {
    Serial.print("Distance = ");
    Serial.println(" cm");


There are four pins on the HC-SR04 Ultrasonic distance sensor:

  • Vcc: power.
  • Trig: sends out the sonic burst, connected to pin 10.
  • Echo: receive the returned soundwave, connected to pin 13.
  • GND: ground.

Sample Circuit