Item code: 28015
What It Can Do
- Detects nearby objects within a range of 1 inch to 10 feet
- Measures distances using high frequency sound
- Simple signal connection requires just a single wire interface
The PING)))™ Ultrasonic Distance Sensor is an all-in-one module for accurately measuring distances between itself and objects nearby. The effective range is from about 1 inch to 10 feet (2 centimeters to 3 meters). The PING))) sensor consumes only modest power, and is ideal for use in mobile robots, security systems, and any other application for detecting nearby objects, or measuring their distance from the sensor.
In operation, object detection or distance measurement is initiated by sending a short high frequency (40 kHz) tone from the PING))) module. The time it takes to detect the return echo represents the distance between the PING))) module and any objects in front of it. Using basic arithmetic, you can convert the amount of delay of the echo to inches or centimeters. The sound frequencies used in the sensor are in the ultrasonic range, and are beyond human hearing.
A light emitting diode on the front of the PING))) module indicates when it’s active. Use this visual indicator to verify that the module is operating.
Parts List
- PING))) Ultrasonic Distance Sensor
- BASIC Stamp HomeWork board, Propeller BOE, Propeller QuickStart, or Arduino Uno microcontroller
- 22 gauge solid conductor hookup wire
- 1 kΩ resistor (when using the Propeller QuickStart)
Basic Wiring
Note: Be sure to include 1 kΩ resistor when using a Parallax Propeller microcontroller.
- Power requirements: +5 VDC
- Communication: Positive TTL pulse
- Dimensions: 0.81 x 1.8 x 0.6 in (22 x 46 x 16 mm)
Program KickStarts
Each KickStart example demonstrates using the PING))) to take successive readings, and display the results in a serial or debugging window. The value shown is the distance between PING))) and object, in inches.
BASIC Stamp 2 HomeWork Board
Download BASIC Stamp 2 code for the PING))) Sensor
' {$STAMP BS2} ' {$PBASIC 2.5} Ping_Pin CON 0 InConstant CON 890 inDistance VAR Word time VAR Word DO PULSOUT Ping_Pin, 5 ' Send short pulse to Ping PULSIN Ping_Pin, 1, time ' Wait for echo inDistance = inConstant ** time ' Convert to inches DEBUG CR, DEC inDistance ' Display result PAUSE 200 ' Short delay until next read LOOP
When this program is run the BASIC Stamp Debug Terminal will automatically open.
Propeller BOE and Propeller QuickStart
Propeller BOE Wiring Diagram
Propeller QuickStart Wiring Diagram
Download Propeller Spin code for the PING))) Sensor
OBJ pst : "FullDuplexSerial" ping : "Ping" CON _clkmode = xtal1 + pll16x _xinfreq = 5_000_000 ping_pin = 0 ' I/O pin for Ping VAR long range PUB Go pst.start(31,30,0,115200) waitcnt(ClkFreq + Cnt) repeat ' Repeat forever range := ping.Inches(ping_pin) ' Get range in inches pst.dec(range) ' Display result pst.tx(13) WaitCnt(ClkFreq / 4 + Cnt) ' Short delay until next read
Important! This program uses the following object libraries, which are included with the Propeller Tool software download:FullDuplexSerial.spin, Ping.spin.
To view the results of the demonstration, after uploading is complete run the Parallax Serial Terminal from the Run menu, or press F12. Momentarily depress the Reset button on the Propeller QuickStart board to restart the program.
Arduino Uno
Download Arduino Code for the PING))) Sensor
const int pingPin = 11; unsigned int duration, inches; void setup() { Serial.begin(9600); } void loop() { pinMode(pingPin, OUTPUT); // Set pin to OUTPUT digitalWrite(pingPin, LOW); // Ensure pin is low delayMicroseconds(2); digitalWrite(pingPin, HIGH); // Start ranging delayMicroseconds(5); // with 5 microsecond burst digitalWrite(pingPin, LOW); // End ranging pinMode(pingPin, INPUT); // Set pin to INPUT duration = pulseIn(pingPin, HIGH); // Read echo pulse inches = duration / 74 / 2; // Convert to inches Serial.println(inches); // Display result delay(200); // Short delay }
To view the results of the demonstration, after uploading is complete click the Serial Monitor icon in the Arduino IDE. This displays the Serial Monitor window. Momentarily depress the Reset button on the Arduino board to restart the sketch.
For More Information
- Visit the Parallax online store for more information on the PING))) sensor (#28015), including a datasheet and additional examples for the Basic Stamp and Propeller showing measurements in inches and centimeters.
- Add a PING))) Mounting Bracket Kit (#570-28015) to provide a convenient hardware solution for building a motorized ultrasonic scanner.
- Augment the PING)) sensor with a Sharp IR Distance Sensor
- The Build Your Own Door Alarm project uses the PING))) sensor and 2×16 Serial LCD (#27977) with a BASIC Stamp HomeWork Board.
- See ultrasound on Wikipedia for more information on ultrasound technology and terminology.