Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino
This article is a guide about the popular Ultrasonic Sensor HC – SR04. We’ll explain
how it works, show you some of its features and share an Arduino project example
you can follow to integrate in your projects. We provide a schematic diagram on how
to wire the ultrasonic sensor, and an example sketch to use with the Arduino.
Description
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object like
bats do. It offers excellent non-contact range detection with high accuracy and stable
readings in an easy-to-use package. It comes complete with ultrasonic transmitter
and receiver modules.
Features
Here’s a list of some of the HC-SR04 ultrasonic sensor features and specs:
Power Supply :+5V DC
Quiescent Current : <2mA
Working Current: 15mA
Effectual Angle: <15°
Ranging Distance : 2cm – 400 cm/1″ – 13ft
Resolution : 0.3 cm
Measuring Angle: 30 degree
Trigger Input Pulse width: 10uS
Dimension: 45mm x 20mm x 15mm
How Does it Work?
The ultrasonic sensor uses sonar to determine the distance to an object. Here’s what
happens:
1. The transmitter (trig pin) sends a signal: a high-frequency sound.
2. When the signal finds an object, it is reflected and…
3. … the transmitter (echo pin) receives it.
Seite 1 von 6
The time between the transmission and reception of the signal allows us to calculate
the distance to an object. This is possible because we know the sound’s velocity in
the air.
HC-SR04 Ultrasonic Sensor Pinout
Pins
VCC: +5VDC
Seite 2 von 6
Trig : Trigger (INPUT)
Echo: Echo (OUTPUT)
GND: GND
Arduino with HC – SR04 Sensor
This sensor is very popular among the Arduino tinkerers. So, here we provide an
example on how to use the HC-SR04 ultrasonic sensor with the Arduino. In this
project the ultrasonic sensor reads and writes the distance to an object in the serial
monitor.
The goal of this project is to help you understand how this sensor works. Then, you
should be able to use this example in your own projects.
Note: There’s an Arduino library called NewPing that can make your life easier when
using this sensor.
Parts Required
Here’s a list of the parts required to follow the next tutorial:
Arduino UNO
Ultrasonic Sensor (HC-SR04)
Breadboard
Jumper wires
Schematics
Follow the next schematic diagram to wire the HC-SR04 ultrasonic sensor to the
Arduino.
Seite 3 von 6
The following table shows the connections you need to make:
Ultrasonic Sensor HC-SR04 Arduino
VCC 5V
Trig Pin 11
Echo Pinn 12
GND GND
/*
* Complete Guide for Ultrasonic Sensor HC-SR04
*
Ultrasonic sensor Pins:
VCC: +5VDC
Trig : Trigger (INPUT) - Pin11
Echo: Echo (OUTPUT) - Pin 12
GND: GND
*/
int trigPin = 11; // Trigger
Seite 4 von 6
int echoPin = 12; // Echo
long duration, cm, inches;
void setup() {
//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// The sensor is triggered by a HIGH pulse of 10 or more
microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// Convert the time into a distance
cm = (duration/2) / 29.1; // Divide by 29.1 or multiply by
0.0343
inches = (duration/2) / 74; // Divide by 74 or multiply by
0.0135
Seite 5 von 6
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}
Seite 6 von 6