Project 2 - Measuring the distance of an object using ultrasonic sensor and also smoothen the sensor data using moving average filter
OFF_LINE_BATCH;
long duration;
long cm;
long inches;
void setup()
{
//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
}
void loop()
{
float x = Mov_Avg();
float y = MicrosecondsToinches(x);
float z = MicrosecondsTocm(x);
Serial.print(y);
Serial.println();
Serial.print(z);
Serial.println();
delay(1000);
}
void US_TX()
{
pinMode(7,OUTPUT);
digitalWrite(7,LOW);
delayMicroseconds(2);
digitalWrite(7,HIGH);
delayMicroseconds(5);
digitalWrite(7,LOW);
delayMicroseconds(2);
}
long US_RX()
{
pinMode(7,INPUT);
duration = pulseIn(7,HIGH);
return duration;
}
long MicrosecondsToinches(long duration)
{
inches = duration/73.35/2;
}
long MicrosecondsTocm(long duration)
{
cm = duration/29/2;
}
long Mov_Avg()
{
long windowsize = 5;
long data[windowsize];
US_TX();
data[0] = US_RX();
US_TX();
data[1] = US_RX();
US_TX();
data[2] = US_RX();
US_TX();
data[3] = US_RX();
US_TX();
data[4] = US_RX();
long filter_value = (data[0]+data[1]+data[2]+data[3]+data[4]);
long Avg= filter_value/5;
return Avg;
}