Challenge

Project 2 - Measuring the distance of an object using ultrasonic sensor and also smoothen the sensor data using moving average filter

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;
    }
  } 
}
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.