Project 2 - Measuring the distance of an object using ultrasonic sensor and also smoothen the sensor data using moving average filter
OFFLINE BATCH
Project 2 - Measuring the distance of an object using ultrasonic sensor and also smoothen the sensor data using moving average filter:
float microsecToinchs( float d);//initialize the global
float avg;//initialize the global
int i,sum;//initialize the global
int duration,inches;//initialize the global
float Duration_inch;//initialize the global
int data[5];//initialize the global
void setup()
{
Serial.begin(9600);//value shown in serial monitor
pinMode(7, INPUT);//pinmode 7 as input
}
void loop()
{
float average = mov_avg();
Serial.println("distance value is");
Serial.println( inches); //print the distance value
delay(1000);//delay for 1sec
}
void US_Tx()//function definition for transmitter
{
pinMode(7,OUTPUT);
digitalWrite(7,LOW);
delayMicroseconds(2);
digitalWrite(7,HIGH);
delayMicroseconds(5);
digitalWrite(7,LOW);
delayMicroseconds(2);
}
float US_Rx()//function definition for receiver
{
pinMode(7,INPUT);
duration=(unsigned int)pulseIn(7,HIGH);
Duration_inch = microsecToinchs(duration);
return Duration_inch;
}
float microsecToinchs(float d)//function definition for microsecToinchs
{
inches=((d/73.35)/2);//calculation for inches
return d;
}
float mov_avg()//function definition for moving average
{
for(i=0;i<5;i++)
{
US_Tx();//function calling for transmitter
data[i]=US_Rx();//function calling for receiver
sum=sum+data[i];//calculate the sum
}
avg=sum/5;//calculate the average
return avg;
}