Challenge

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

Ans:

  • Code for Slave

#include <Wire.h>

#include <LiquidCrystal.h>

int Signal=2;

LiquidCrystal lcd(2,3,4,5,6,7);

int Value,Duration;

void setup()

{

Wire.begin(8);

Serial.begin(9600);

Wire.onRequest(Distance);

}

void loop()

{

delay(100);

}

void Distance()

{

int count=0;

int TotalValue=0, AvgValue,Value=0;

int Arr[5];

while(count<5)

{

pinMode(Signal,OUTPUT);

digitalWrite(Signal,LOW);

delay(5);

digitalWrite(Signal,HIGH);

delay(10);

digitalWrite(Signal,LOW);

pinMode(Signal,INPUT);

Duration=pulseIn(Signal,HIGH);

Value=(Duration/75)/2;

Serial.println(Value);

Arr[count]=Value;

count+=1;

}

for(int i=0;i<5;i++);

AvgValue=TotalValue/count;

Wire.write(AvgValue);

delay(10);

}

  • Code for Master

#include <Wire.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd(2,3,4,5,6,7);

int Distance;

void setup()

{

Wire.begin();

Serial.begin(9600);

}

void loop()

{

Wire.requestFrom(8,1);

Distance=Wire.read();

lcd.setCursor(0,0);

lcd.print("Distace= ");

lcd.print(Distance);

lcd.print("inch");

Serial.println(Distance);

delay(50);

Wire.end();

}

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.