
float duration, cm, inches,avg; //float used to read fractional values
float sum=0;
int i;
void setup()
{
Serial.begin (9600);
}
int calculateDistance(int trigPin, int echoPin)
{
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); /* declaring duration calculation as
a single function*/
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
return pulseIn(echoPin, HIGH);
}
void loop()
{
duration = calculateDistance(11,11);//initiating pins
for(i = 1; i <= 10; i++)
{
sum = sum + duration; //averaging input signal
Serial.print(sum);
Serial.println();
delay(100);
if(i == 10)
{
avg = sum/10;
// Convert the time into a distance (1micro second = 0.0343 cm)
cm = (avg/2)*0.0343; //multiply by 0.0343
inches = (cm/2.54);
Serial.print("avg: ");
Serial.print(avg);
Serial.print(" | ");
Serial.print(inches);
Serial.print("in | ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
sum = 0;
}
}
}