Project 2 - Measuring the distance of an object using ultrasonic sensor and also smoothen the sensor data using moving average filter
1)offline
float microsecToinchs( float d);
float avg;
int i,sum;
int duration,inches;
float Duration_inch;
int data[5];
void setup()
{
Serial.begin(9600);
pinMode(6, INPUT);
}
void loop()
{
float average = mov_avg();
Serial.println("distance value is");
Serial.println( inches);
delay(1000);
}
void US_Tx()
{
pinMode(6,OUTPUT);
//delayMicroseconds(5);
digitalWrite(6,LOW);
delayMicroseconds(2);
digitalWrite(6,HIGH);
delayMicroseconds(5);
digitalWrite(6,LOW);
delayMicroseconds(2);
}
float US_Rx()
{
pinMode(6,INPUT);
duration=(unsigned int)pulseIn(6,HIGH);
Duration_inch = microsecToinchs(duration);
return Duration_inch;
}
float microsecToinchs(float d)
{
inches=((d/73.35)/2);
return d;
}
float mov_avg()
{
for(i=0;i<5;i++)
{
US_Tx();
data[i]=US_Rx();
sum=sum+data[i];
}
avg=sum/5;
i=0;
return avg;
}