Tutorial.Ping History

Hide minor edits - Show changes to output

August 28, 2015, at 03:37 PM by Simone Maiocchi -
August 28, 2015, at 03:34 PM by Simone Maiocchi -
Changed lines 1-6 from:
(:div class=breadcrumb:)
[[Tutorial.HomePage | Tutorials]] > [[Tutorial.Examples | Examples]] > Sensors >Ping
(:divend:)

(:*toc:)
to:
(:html:)

<div class="subHeader row">

<div class="breadcrumb columns large-10 medium-10">
<p>
<a class="wikilink" href="/en/Tutorial/HomePage">Tutorials </a>
> <a class="wikilink" href="/en/Tutorial/BuiltInExamples"> Built-In Examples </a> > 06.Sensors > Ping
</p>
</div>
</div>

(:htmlend:)

Added line 21:
(:div class=BOM:)
Changed lines 25-26 from:
to:
(:divend:)
Changed line 28 from:
to:
(:div class=circuit:)
Changed lines 45-46 from:
to:
(:divend:)
Changed lines 57-60 from:
* [[Reference/PinMode | pinMode() ]]
* [[Reference/DelayMicroseconds()| delayMicroseconds()]]
* [[Reference/PulseIn | pulseIn()]]
* [[Reference/DigitalWrite | digitalWrite()]]
to:
* [[Reference/PinMode | pinMode]]()
* [[Reference/DelayMicroseconds()| delayMicroseconds]]()
* [[Reference/PulseIn | pulseIn]]()
* [[Reference/DigitalWrite | digitalWrite]]()
Changed lines 62-68 from:
* [[Serial/Begin | serial.begin()]]
* [[Serial/Print | serial.print()]]

* [[Tutorial/ADXL3xx]] - Read a ADXL3xx accelerometer.
* [[Memsic2125 ]] - Two-axis acceleromoter.
* [[Tutorial/Knock]] - Detect knocks/impacts with a piezo element
to:
* [[Serial/Begin | serial.begin]]()
* [[Serial/Print | serial.print]]()

* [[ADXL3xx]] - Read an ADXL3xx accelerometer.
* [[Knock]] - Detect knocks with a piezo element.
* [[Memsic2125]] - Two-axis accelerometer.
July 29, 2015, at 09:34 PM by Simone Maiocchi -
Changed lines 9-10 from:
The [[http://store.arduino.cc/product/SEN136B5B | '''SEN136B5B''']] is an ultrasonic range finder from Seeedstudio. It detects the distance of the closest object in front of the sensor (from 3 cm up to 400 cm). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino or Genuino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
The [[http://store.arduino.cc/product/SEN136B5B | '''SEN136B5B''']] is an ultrasonic range finder from Seeedstudio. It detects the distance of the closest object in front of the sensor (from 3 cm up to 400 cm). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. It ''pings'' the obstacles with ultrasound. The Arduino or Genuino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
July 29, 2015, at 09:29 PM by Simone Maiocchi -
Changed lines 9-10 from:
The [[http://store.arduino.cc/product/SEN136B5B | '''SEN136B5B)))''']] is an ultrasonic range finder from Seeedstudio. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino or Genuino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
The [[http://store.arduino.cc/product/SEN136B5B | '''SEN136B5B''']] is an ultrasonic range finder from Seeedstudio. It detects the distance of the closest object in front of the sensor (from 3 cm up to 400 cm). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino or Genuino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
Changed line 13 from:
* SEN136B5B Ultrasonic Range Finder
to:
* [[http://store.arduino.cc/product/SEN136B5B |SEN136B5B]] Ultrasonic Range Finder
July 29, 2015, at 09:26 PM by Simone Maiocchi -
Changed lines 9-10 from:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino or Genuino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
The [[http://store.arduino.cc/product/SEN136B5B | '''SEN136B5B)))''']] is an ultrasonic range finder from Seeedstudio. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino or Genuino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
Changed line 13 from:
* Ping))) Ultrasonic Range Finder
to:
* SEN136B5B Ultrasonic Range Finder
Changed lines 18-20 from:
The 5V pin of the PING))) is connected to the 5V pin on the board, the GND pin is connected to the GND pin, and the SIG (signal) pin is connected to digital pin 7 on the board.

to:
The 5V pin of the SEN136B5B is connected to the 5V pin on the board, the GND pin is connected to the GND pin, and the SIG (signal) pin is connected to digital pin 7 on the board.

Added lines 57-59:
\\
''Last revision 2015/07/29 by SM ''
July 09, 2015, at 03:19 PM by Simone Maiocchi -
Changed line 2 from:
[[Tutorial.HomePage | Tutorials]] &gt; [[Tutorial.Examples | Examples]] &gt; USB &gt; Sensors &gt;Ping
to:
[[Tutorial.HomePage | Tutorials]] &gt; [[Tutorial.Examples | Examples]] &gt; Sensors &gt;Ping
July 09, 2015, at 02:47 PM by Simone Maiocchi -
Changed lines 1-6 from:
''Examples > Sensors''

!!!Ping Ultrasonic Range Finder

The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
(:div class=breadcrumb:)
[[Tutorial.HomePage | Tutorials]] &gt; [[Tutorial.Examples | Examples]] &gt; USB &gt; Sensors &gt;Ping
(:divend:)

(:*toc:)

!!Ping Ultrasonic Range Finder

The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino or Genuino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
Changed lines 12-20 from:
* Arduino Board
* (1) Ping Ultrasonic Range Finder
* hook-up wire

!!!!Circuit

The 5V pin of the PING))) is connected to the 5V pin on the Arduino, the GND pin is connected to the GND pin, and the SIG (signal) pin is connected to digital pin 7 on the Arduino.

to:
* Arduino or Genuino Board
* Ping))) Ultrasonic Range Finder
* hook-up wires

!!!Circuit

The 5V pin of the PING))) is connected to the 5V pin on the board, the GND pin is connected to the GND pin, and the SIG (signal) pin is connected to digital pin 7 on the board.

Changed lines 28-29 from:
'''Schematic:'''
to:
!!!Schematic
Changed lines 43-56 from:
!!!See Also:

* [[Reference/PinMode | @@pinMode()@@ ]]
* [[Reference/DelayMicroseconds()| @@delayMicroseconds()@@]]
* [[Reference/PulseIn | @@pulseIn()@@]]
* [[Reference/DigitalWrite | @@digitalWrite()@@]]
* [[Reference/Return | @@return@@]]
* [[Serial/Begin | @@serial.begin()@@]]
* [[Serial/Print | @@serial.print()@@]]

* [[Tutorial/ADXL3xx]] - read a ADXL3xx accelerometer.
* [[Memsic2125 ]] - two-axis acceleromoter.
* [[Tutorial/Knock]] - detect knocks/impacts with a piezo element
to:
!!!See Also

* [[Reference/PinMode | pinMode() ]]
* [[Reference/DelayMicroseconds()| delayMicroseconds()]]
* [[Reference/PulseIn | pulseIn()]]
* [[Reference/DigitalWrite | digitalWrite()]]
* [[Reference/Return | return]]
* [[Serial/Begin | serial.begin()]]
* [[Serial/Print | serial.print()]]

* [[Tutorial/ADXL3xx]] - Read a ADXL3xx accelerometer.
* [[Memsic2125 ]] - Two-axis acceleromoter.
* [[Tutorial/Knock]] - Detect knocks/impacts with a piezo element
May 02, 2012, at 04:04 PM by Scott Fitzgerald -
Changed line 35 from:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/6.Sensors/Ping/Ping.ino lang=arduino tabwidth=4:)
to:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/06.Sensors/Ping/Ping.ino lang=arduino tabwidth=4:)
November 16, 2011, at 04:19 AM by Scott Fitzgerald -
Changed line 35 from:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/6.Sensors/Ping/Ping.pde lang=arduino tabwidth=4:)
to:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/6.Sensors/Ping/Ping.ino lang=arduino tabwidth=4:)
September 23, 2010, at 10:42 PM by Christian Cerrito -
Changed lines 3-4 from:
!!Ping Ultrasonic Range Finder
to:
!!!Ping Ultrasonic Range Finder
September 19, 2010, at 10:09 PM by Christian Cerrito -
Added lines 1-2:
''Examples > Sensors''
September 19, 2010, at 07:33 PM by Christian Cerrito -
Changed line 44 from:
* [[Serial/Begin | @@serial.Begin()@@]]
to:
* [[Serial/Begin | @@serial.begin()@@]]
September 19, 2010, at 07:32 PM by Christian Cerrito -
Added line 43:
* [[Reference/Return | @@return@@]]
September 19, 2010, at 07:29 PM by Christian Cerrito -
Changed lines 3-4 from:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [[Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
September 19, 2010, at 07:29 PM by Christian Cerrito -
Changed lines 3-4 from:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the [Reference/PulseIn | '''pulseIn()''']] function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
Changed line 40 from:
* [[Reference/DelayMicroSeconds()| @@delayMicroseconds()@@]]
to:
* [[Reference/DelayMicroseconds()| @@delayMicroseconds()@@]]
Deleted line 46:
* [[Tutorial/Ping]] - detect objects with an ultrasonic range finder.
September 19, 2010, at 07:22 PM by Christian Cerrito -
Changed lines 3-4 from:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | Ping)))]] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | '''Ping)))''']] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (from 2 cm up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.

!!!Hardware Required
* Arduino Board
* (1) Ping Ultrasonic Range Finder
* hook-up wire
Added line 11:
Added lines 36-50:

!!!See Also:

* [[Reference/PinMode | @@pinMode()@@ ]]
* [[Reference/DelayMicroSeconds()| @@delayMicroseconds()@@]]
* [[Reference/PulseIn | @@pulseIn()@@]]
* [[Reference/DigitalWrite | @@digitalWrite()@@]]
* [[Serial/Begin | @@serial.Begin()@@]]
* [[Serial/Print | @@serial.print()@@]]

* [[Tutorial/ADXL3xx]] - read a ADXL3xx accelerometer.
* [[Tutorial/Ping]] - detect objects with an ultrasonic range finder.
* [[Memsic2125 ]] - two-axis acceleromoter.
* [[Tutorial/Knock]] - detect knocks/impacts with a piezo element
September 19, 2010, at 07:32 AM by Christian Cerrito -
Changed lines 20-22 from:
%width=400px%[[Attach:ping_schem.png | Attach:ping_schem.png]]

to:
%width=400px%[[Attach:PING_schem.png | Attach:PING_schem.png]]

September 17, 2010, at 10:57 PM by Tom Igoe -
September 16, 2010, at 10:19 PM by Tom Igoe -
Changed line 27 from:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/Sensors/Ping/Ping.pde lang=arduino tabwidth=4:)
to:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/6.Sensors/Ping/Ping.pde lang=arduino tabwidth=4:)
September 16, 2010, at 10:19 PM by Tom Igoe -
Changed line 27 from:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/Sensors/Ping/Ping.pde language=arduino tabwidth=4:)
to:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/Sensors/Ping/Ping.pde lang=arduino tabwidth=4:)
February 24, 2010, at 04:28 AM by Tom Igoe -
Changed line 27 from:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/Sensors/tonePitchFollower/tonePitchFollower.pde language=arduino tabwidth=4:)
to:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/Sensors/Ping/Ping.pde language=arduino tabwidth=4:)
February 24, 2010, at 04:28 AM by Tom Igoe -
Changed lines 27-38 from:
%color=#7e7e7e%/* Ping))) Sensor
%color=#7e7e7e%
%color=#7e7e7e% This sketch reads a PING))) ultrasonic rangefinder and returns the
%color=#7e7e7e% distance to the closest object in range. To do this, it sends a pulse
%color=#7e7e7e% to the sensor to initiate a reading, then listens for a pulse
%color=#7e7e7e% to return. The length of the returning pulse is proportional to
%color=#7e7e7e% the distance of the object from the sensor.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * +V connection of the PING))) attached to +5V
%color=#7e7e7e% * GND connection of the PING))) attached to ground
%color=#7e7e7e% * SIG connection of the PING))) attached to digital pin 7
to:
(:source https://raw.githubusercontent.com/arduino/Arduino/master/build/shared/examples/Sensors/tonePitchFollower/tonePitchFollower.pde language=arduino tabwidth=4:)
Changed lines 29-99 from:
%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/Ping
%color=#7e7e7e%
%color=#7e7e7e% created 3 Nov 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% modified 30 Jun 2009
%color=#7e7e7e% by Tom Igoe

%color=#7e7e7e% */

%color=#7e7e7e%// this constant won't change. It's the pin number
%color=#7e7e7e%// of the sensor's output:
const %color=#cc6600%int%% pingPin = 7;

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%() {
%color=#7e7e7e%// initialize serial communication:
%color=#cc6600%Serial%%.%color=#cc6600%begin%%(9600);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%()
{
%color=#7e7e7e%// establish variables for duration of the ping,
%color=#7e7e7e%// and the distance result in inches and centimeters:
%color=#cc6600%long%% duration, inches, cm;

%color=#7e7e7e%// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
%color=#7e7e7e%// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
%color=#cc6600%pinMode%%(pingPin, %color=#006699%OUTPUT%%);
%color=#cc6600%digitalWrite%%(pingPin, %color=#006699%LOW%%);
%color=#cc6600%delayMicroseconds%%(2);
%color=#cc6600%digitalWrite%%(pingPin, %color=#006699%HIGH%%);
%color=#cc6600%delayMicroseconds%%(5);
%color=#cc6600%digitalWrite%%(pingPin, %color=#006699%LOW%%);

%color=#7e7e7e%// The same pin is used to read the signal from the PING))): a HIGH
%color=#7e7e7e%// pulse whose duration is the time (in microseconds) from the sending
%color=#7e7e7e%// of the ping to the reception of its echo off of an object.
%color=#cc6600%pinMode%%(pingPin, %color=#006699%INPUT%%);
duration = %color=#cc6600%pulseIn%%(pingPin, %color=#006699%HIGH%%);

%color=#7e7e7e%// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

%color=#cc6600%Serial%%.%color=#cc6600%print%%(inches);
%color=#cc6600%Serial%%.%color=#cc6600%print%%(%color=#006699%"in, "%%);
%color=#cc6600%Serial%%.%color=#cc6600%print%%(cm);
%color=#cc6600%Serial%%.%color=#cc6600%print%%(%color=#006699%"cm"%%);
%color=#cc6600%Serial%%.%color=#cc6600%println%%();

%color=#cc6600%delay%%(100);
}

%color=#cc6600%long%% microsecondsToInches(%color=#cc6600%long%% microseconds)
{
%color=#7e7e7e%// According to Parallax's datasheet for the PING))), there are
%color=#7e7e7e%// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
%color=#7e7e7e%// second). This gives the distance travelled by the ping, outbound
%color=#7e7e7e%// and return, so we divide by 2 to get the distance of the obstacle.
%color=#7e7e7e%// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
%color=#cc6600%return%% microseconds / 74 / 2;
}

%color=#cc6600%long%% microsecondsToCentimeters(%color=#cc6600%long%% microseconds)
{
%color=#7e7e7e%// The speed of sound is 340 m/s or 29 microseconds per centimeter.
%color=#7e7e7e%// The ping travels out and back, so to find the distance of the
%color=#7e7e7e%// object we take half of the distance travelled.
%color=#cc6600%return%% microseconds / 29 / 2;
}

(:divend:)
to:
(:divend:)
August 27, 2009, at 08:48 PM by Tom Igoe -
Added lines 13-15:
[-image developed using [[http://www.fritzing.org |Fritzing]]. For more circuit examples, see the [[http://fritzing.org/projects/|Fritzing project page]] -]

July 05, 2009, at 07:48 PM by Tom Igoe -
Changed lines 22-23 from:
[@
/* Ping))) Sensor
to:
(:div class=code :)
Changed lines 24-35 from:
This sketch reads a PING))) ultrasonic rangefinder and returns the
distance to the closest object in range. To do this, it sends a pulse
to the sensor to initiate a reading, then listens for a pulse
to return. The length of the returning pulse is proportional to
the distance of the object from the sensor.

The circuit:
* +V connection of the PING))) attached to +5V
* GND connection of the PING))) attached to ground
* SIG connection of the PING))) attached to digital pin 7

http://www.arduino.cc/en/Tutorial/Ping
to:
%color=#7e7e7e%/* Ping))) Sensor
%color=#7e7e7e%
%color=#7e7e7e% This sketch reads a PING))) ultrasonic rangefinder and returns the
%color=#7e7e7e% distance to the closest object in range. To do this, it sends a pulse
%color=#7e7e7e% to the sensor to initiate a reading, then listens for a pulse
%color=#7e7e7e% to return. The length of the returning pulse is proportional to
%color=#7e7e7e% the distance of the object from the sensor.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * +V connection of the PING))) attached to +5V
%color=#7e7e7e% * GND connection of the PING))) attached to ground
%color=#7e7e7e% * SIG connection of the PING))) attached to digital pin 7

%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/Ping
%color=#7e7e7e%
%color=#7e7e7e% created 3 Nov 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% modified 30 Jun 2009
%color=#7e7e7e% by Tom Igoe

%color=#7e7e7e% */

%color=#7e7e7e%// this constant won't change. It's the pin number
%color=#7e7e7e%// of the sensor's output:
const %color=#cc6600%int%% pingPin = 7;

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%() {
%color=#7e7e7e%// initialize serial communication:
%color=#cc6600%Serial%%.%color=#cc6600%begin%%(9600);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%()
{
%color=#7e7e7e%// establish variables for duration of the ping,
%color=#7e7e7e%// and the distance result in inches and centimeters:
%color=#cc6600%long%% duration, inches, cm;

%color=#7e7e7e%// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
%color=#7e7e7e%// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
%color=#cc6600%pinMode%%(pingPin, %color=#006699%OUTPUT%%);
%color=#cc6600%digitalWrite%%(pingPin, %color=#006699%LOW%%);
%color=#cc6600%delayMicroseconds%%(2);
%color=#cc6600%digitalWrite%%(pingPin, %color=#006699%HIGH%%);
%color=#cc6600%delayMicroseconds%%(5);
%color=#cc6600%digitalWrite%%(pingPin, %color=#006699%LOW%%);

%color=#7e7e7e%// The same pin is used to read the signal from the PING))): a HIGH
%color=#7e7e7e%// pulse whose duration is the time (in microseconds) from the sending
%color=#7e7e7e%// of the ping to the reception of its echo off of an object.
%color=#cc6600%pinMode%%(pingPin, %color=#006699%INPUT%%);
duration = %color=#cc6600%pulseIn%%(pingPin, %color=#006699%HIGH%%);

%color=#7e7e7e%// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Changed lines 80-148 from:
created 3 Nov 2008
by David A. Mellis
modified 30 Jun 2009
by Tom Igoe

*/

// this constant won't change. It's the pin number
// of the sensor's output:
const int pingPin = 7;

void setup() {
// initialize serial communication:
Serial.begin(9600);
}

void loop()
{
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): 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(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();

delay(100);
}

long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}

@]
to:
%color=#cc6600%Serial%%.%color=#cc6600%print%%(inches);
%color=#cc6600%Serial%%.%color=#cc6600%print%%(%color=#006699%"in, "%%);
%color=#cc6600%Serial%%.%color=#cc6600%print%%(cm);
%color=#cc6600%Serial%%.%color=#cc6600%print%%(%color=#006699%"cm"%%);
%color=#cc6600%Serial%%.%color=#cc6600%println%%();

%color=#cc6600%delay%%(100);
}

%color=#cc6600%long%% microsecondsToInches(%color=#cc6600%long%% microseconds)
{
%color=#7e7e7e%// According to Parallax's datasheet for the PING))), there are
%color=#7e7e7e%// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
%color=#7e7e7e%// second). This gives the distance travelled by the ping, outbound
%color=#7e7e7e%// and return, so we divide by 2 to get the distance of the obstacle.
%color=#7e7e7e%// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
%color=#cc6600%return%% microseconds / 74 / 2;
}

%color=#cc6600%long%% microsecondsToCentimeters(%color=#cc6600%long%% microseconds)
{
%color=#7e7e7e%// The speed of sound is 340 m/s or 29 microseconds per centimeter.
%color=#7e7e7e%// The ping travels out and back, so to find the distance of the
%color=#7e7e7e%// object we take half of the distance travelled.
%color=#cc6600%return%% microseconds / 29 / 2;
}

(:divend:)
June 30, 2009, at 11:33 PM by Tom Igoe -
Changed lines 23-51 from:
int pingPin = 7;

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

void loop()
{
long duration, inches, cm;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// We give a short LOW pulse beforehand to ensure a clean HIGH pulse.
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): 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(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
to:
/* Ping))) Sensor
Changed lines 25-31 from:
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();

delay(100);
to:
This sketch reads a PING))) ultrasonic rangefinder and returns the
distance to the closest object in range. To do this, it sends a pulse
to the sensor to initiate a reading, then listens for a pulse
to return. The length of the returning pulse is proportional to
the distance of the object from the sensor.

The circuit:
* +V connection of the PING))) attached to +5V
* GND connection of the PING))) attached to ground
* SIG connection of the PING))) attached to digital pin 7

http://www.arduino.cc/en/Tutorial/Ping

created 3 Nov 2008
by David A. Mellis
modified 30 Jun 2009
by Tom Igoe

*/

// this constant won't change. It's the pin number
// of the sensor's output:
const int pingPin = 7;

void setup() {
// initialize serial communication:
Serial.begin(9600);
Changed line 54 from:
long microsecondsToInches(long microseconds)
to:
void loop()
Added lines 56-89:
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): 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(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();

delay(100);
}

long microsecondsToInches(long microseconds)
{
Added line 105:
June 30, 2009, at 11:31 PM by Tom Igoe -
Deleted lines 5-7:

Attach:ping.jpg
Added lines 8-19:

[-click the image to enlarge-]

%width=400px%[[Attach:ping_bb.png | Attach:ping_bb.png]]

'''Schematic:'''

[-click the image to enlarge-]

%width=400px%[[Attach:ping_schem.png | Attach:ping_schem.png]]

November 03, 2008, at 02:51 PM by David A. Mellis -
Changed lines 3-4 from:
The Ping))) is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
to:
The [[http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName | Ping)))]] is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
November 03, 2008, at 02:50 PM by David A. Mellis -
Changed lines 3-4 from:
The Ping))) is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor. It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object.
to:
The Ping))) is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor (up to 3m). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance.
Added lines 9-10:
The 5V pin of the PING))) is connected to the 5V pin on the Arduino, the GND pin is connected to the GND pin, and the SIG (signal) pin is connected to digital pin 7 on the Arduino.
November 03, 2008, at 02:45 PM by David A. Mellis -
Changed lines 7-8 from:

to:
Attach:ping.jpg
November 03, 2008, at 02:45 PM by David A. Mellis -
Added lines 3-8:
The Ping))) is an ultrasonic range finder from Parallax. It detects the distance of the closest object in front of the sensor. It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object.

!!!!Circuit


November 03, 2008, at 02:40 PM by David A. Mellis -
Added lines 1-62:
!!Ping Ultrasonic Range Finder

!!!!Code

[@
int pingPin = 7;

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

void loop()
{
long duration, inches, cm;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// We give a short LOW pulse beforehand to ensure a clean HIGH pulse.
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): 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(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();

delay(100);
}

long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
@]

Share