//-----------------------------------------------------------------
//    Code for using the HC-SR04 Ultrasonic distance sensor
//    Setup:
//          Wire: "Vcc" to Arduino 5v socket
//          Wire: "Gnd" to Arduino gnd socket
//          Wire: "Trig" to Arduino digital pin 3
//          Wire: "Vcc" to Arduino digital pin 2
//
//    Original code for Ping))) example was created by David A. Mellis
//    This example code is in the public domain.
//-----------------------------------------------------------------

int trigPin=3;
int echoPin=2;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin,OUTPUT);
  pinMode(echoPin,INPUT);

}

void loop() {
//  Create 2 floating point (long) variables:
  long duration, inches;

  digitalWrite(trigPin,LOW);
  delayMicroseconds(2);

  // The sensor is triggered by a HIGH pulse of 10 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  digitalWrite(trigPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,LOW);

  // Read the signal from the sensor: 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.
  duration = pulseIn(echoPin,HIGH);

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

  Serial.println(inches);

  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;
}
