Ultrasonic Sensor Tutorial

How It Works – Ultrasonic Sensor


Hello friends. This is a complete tutorial on Ultrasonic Sensor.
What is Ultrasonic Sensor?
Ultrasonic Sensor is a sensor which can measure distance. It is compatible with all kinds of micro-controller, such as Arduino, raspberry pi etc.
How does it work?
It emits an ultrasound at 40 000 Hz which travels through the air and if there is an object or obstacle on its path It will bounce back to the module. Considering the travel time and the speed of the sound you can calculate the distance.

Which model of Ultrasonic sensor is being used?
We are using The HC-SR04 Ultrasonic Module. The HC-SR04 Ultrasonic Module has 4 pins, Ground, VCC, Trig and Echo. The Ground and the VCC pins of the module needs to be connected to the Ground and the 5 volts pins on the Arduino Board respectively and the trig and echo pins to any Digital I/O pin on the Arduino Board.

In order to generate the ultrasound we need to set the Trig on a High State for 10 ยตs. That will send out an 8 cycle sonic burst which will travel at the speed sound and it will be received in the Echo pin. The Echo pin will output the time in microseconds the sound wave traveled.
For example, if the object is 10 cm away from the sensor, and the speed of the sound is 340 m/s or 0.034 cm/ยตs the sound wave will need to travel about 294 u seconds. But what you will get from the Echo pin will be double that number because the sound wave needs to travel forward and bounce backward.

So in order to get the distance in cm we need to multiply the received travel time value from the echo pin by 0.034 and divide it by 2.


Components needed for this tutorial


Ultrasonic Sensor HC-SR04
Arduino Board
Breadboard and Jump Wires

 

Source Codes


First we have to define the Trig and Echo pins. In this case they are the pins number 12 and 13 on the Arduino Board and they are named trigPin and echoPin. Then we need a Long variable, named “duration” for the travel time that we will get from the sensor and an integer variable for the distance.
In the setup we have to define the trigPin as an output and the echoPin as an Input and also start the serial communication for showing the results on the serial monitor.
In the loop first we have to make sure that the trigPin is clear so we have to set that pin on a LOW State for just 2 ยตs. Now for generating the Ultra sound wave we have to set the trigPin on HIGH State for 10 ยตs. Using the pulseIn() function you have to read the travel time and put that value into the variable “duration”. This function has 2 parameters, the first one is the name of the echo pin and for the second one we can write either HIGH or LOW. In this case, HIGH means that the pulsIn() function will wait for the pin to go HIGH caused by the bounced sound wave and it will start timing, then it will wait for the pin to go LOW when the sound wave will end which will stop the timing. At the end the function will return the length of the pulse in microseconds. For getting the distance we will multiply the duration by 0.034 and divide it by 2 as we explained this equation previously.  At the end we will print the value of the distance on the Serial Monitor.
Here is the complete source code.
/*
* Ultrasonic Sensor HC-SR04 and Arduino Tutorial
*
* By Zubaer Mahmud
* www.screwdrvr.blogspot.com
*facebook.com/driver3scr/
*/

// defines pins numbers

const int trigPin = 12;
const int echoPin = 13;
// defines variables
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600); // Starts the serial communication
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);}

 You can download the source Code form Here.




SHARE THIS

Author:

Previous Post
First