Ultrasonic Sensor | Arduino Tutorial

About Ultrasonic Sensor

Ultrasonic sensor HC-SR04 is used to measure the distance to an object by using ultrasonic waves.

Pinout

The ultrasonic sensor HC-SR04 includes four pins:

  • VCC pin: needs to be connected to VCC (5V)
  • GND pin: needs to be connected to GND (0V)
  • TRIG pin: this pin receives the control signal (pulse) from Arduino.
  • ECHO pin: this pin sends a signal (pulse) to Arduino. Arduino measures the duration of pulse to calculate distance.
Ultrasonic Sensor Pinout image source: diyables.io

How It Works

This section is the in-depth knowledge. DON'T worry if you don't understand. Ignore this section if it overloads you, and come back in another day. Keep reading the next sections.
  1. Micro-controller: generates a 10-microsecond pulse on the TRIG pin.
  2. The ultrasonic sensor automatically emits the ultrasonic waves.
  3. The ultrasonic wave is reflected after hitting an obstacle.
  4. The ultrasonic sensor:
    • Detects the reflected ultrasonic wave.
    • Measures the travel time of the ultrasonic wave.
  • Ultrasonic sensor: generates a pulse to the ECHO pin. The duration of the pulse is equal to the travel time of the ultrasonic wave.
  • Micro-controller measures the pulse duration in the ECHO pin, and then calculate the distance between sensor and obstacle.
  • How to Get Distance From Ultrasonic Sensor

    To get distance from the ultrasonic sensor, we only need to do two steps (1 and 6 on How It Works part)

    • Generates a 10-microsecond pulse on TRIG pin
    • Measures the pulse duration in ECHO pin, and then calculate the distance between sensor and obstacle

    Distance Calculation

    We have:

    • The travel time of the ultrasonic wave (µs): travel_time = pulse_duration
    • The speed of the ultrasonic wave: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs

    So:

    • The travel distance of the ultrasonic wave (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
    • The distance between sensor and obstacle (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration

    Arduino - Ultrasonic Sensor

    Arduino's pins can generate a 10-microsecond pulse and measure the pulse duration. Therefore, we can get the distance from the ultrasonic sensor by using two Arduino's pins:

    • One pin is connected to TRIG PIN to generate 10µs pulse to TRIG pin of the sensor
    • Another pin is connected to ECHO PIN measure pulse from the sensor

    Tag » Arduino Hc-sr04 Code