Ping ultrasonic distance sensor
1 / 6

PING))) Ultrasonic Distance Sensor - PowerPoint PPT Presentation

  • Uploaded on

living with the lab.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'PING))) Ultrasonic Distance Sensor' - tadhg

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ping ultrasonic distance sensor

living with the lab

The PING))) sensor emits short bursts of sound and listens for this sound to echo off of nearby objects. The frequency of the sound is too high for humans to hear (it is ultrasonic). The PING))) sensor measures the time of flight of the sound burst. A user then computes the distance to an object using this time of flight and the speed of sound (1,126 ft/s).

PING))) Ultrasonic Distance Sensor

ultrasonic pressure waves

from PING))) speaker

sound wave reflects off object and returns to PING))) “microphone”

Ping ultrasonic distance sensor

living with the lab

Computing Distance

Ping ultrasonic distance sensor

living with the lab


  • measurement range: 0.8 in to 120 inches

  • supply voltage: 5V

  • supply current: 30mA

sensing distance (feet) as a function of angle

Ping ultrasonic distance sensor




living with the lab


Connection to an Arduino



Ping ultrasonic distance sensor

living with the lab

Arduino Sketch

  • The Arduino triggers the PING))) by sending a 5ms pulse to the sensor through pin 7, which is initially configured as an Arduino OUTPUT.

  • Immediately after sending this pulse, pin 7 is switched to an INPUT.

  • When the PING))) receives the 5ms pulse from the Arduino, it sends a 40kHz (ultrasonic) burst of sound out its “speaker” and sets pin 7 to HIGH.

  • The PING))) then waits for the sound burst to reflect off of something and return to the “microphone” where it is detected; the PING))) then sets pin 7 to LOW.

  • The Arduino uses the pulseIn command to measure the time of flight of the sound wave in microseconds (the time that pin 7, when configured as an input, is HIGH).

  • The “time of flight” of the sound wave in ms is stored in the variable “duration.”

void setup() { Serial.begin(9600); }

void loop() { long duration, inches; pinMode(7, OUTPUT); // send a 5 microsecond pulse out pin 7digitalWrite(7, LOW); delayMicroseconds(2);digitalWrite(7, HIGH);delayMicroseconds(5);digitalWrite(7, LOW);

pinMode(7, INPUT); // make pin 7 an input duration = pulseIn(7, HIGH); // measure the time of flight of sound wave

inches = duration / 74 / 2; // 1130 ft/s * 12in/ft * 1s/1,000,000us = 74// factor of 2 since sound travels out and back

Serial.print(inches); // display distance in inchesSerial.print("in ");Serial.println(); }

Ping ultrasonic distance sensor

living with the lab

Example Application

The picture shows how stiff wire (such as a coat hanger) can be used to mount the PING))) to an aluminum plate. An Arduino and breadboard are also mounted to the plate, and a piezospeaker is installed on the breadboard to allow the device to output an irritating noise whose frequency is proportional to the distance from the PING))) to a target.

void setup() {pinMode(8, OUTPUT); }

void loop()


long duration, inches, tone_freq;

pinMode(7, OUTPUT); // make pin 7 an output

digitalWrite(7, LOW); // send wakeup pulse


digitalWrite(7, HIGH);


digitalWrite(7, LOW);

pinMode(7, INPUT); // make pin 7 an input

duration = pulseIn(7, HIGH); // time of flight of wave

inches = duration / 74 / 2; // compute distance in inches

tone_freq = inches*100; // a freq of 100*inches is good

tone(8,tone_freq); // send a tone out of pin 8