Challenge

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

#define WINDOW_SIZE 5
int INDEX = 0;
int VALUE = 0;
int IN_PIN= 7;
int SUM = 0;
int READINGS[WINDOW_SIZE];
int AVERAGED = 0;

void setup() {
pinMode(IN_PIN, INPUT);
Serial.begin(9600);
}

void loop() {

SUM = SUM - READINGS[INDEX]; // Remove the oldest entry from the sum
VALUE = analogRead(IN_PIN); // Read the next sensor value
READINGS[INDEX] = VALUE; // Add the newest reading to the window
SUM = SUM + VALUE; // Add the newest reading to the sum
INDEX = (INDEX+1) % WINDOW_SIZE; // Increment the index, and wrap to 0 if it exceeds the window size

AVERAGED = SUM / WINDOW_SIZE; // Divide the sum of the window by the window size for the result
Serial.print("Original Value is:");
Serial.print(VALUE);
Serial.print("\n");
delay(500);
Serial.print("Average Value is:");
Serial.println(AVERAGED);
delay(500);
}

output:

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.

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.