Project 2 - Measuring the distance of an object using ultrasonic sensor and also smoothen the sensor data using moving average filter
//* P2: Measure Distance using Ultrasonic Distance Sensor *//
// Master code
#include
#include
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();
}
//* P2: Measure Distance using Ultrasonic Distance Sensor *//
// Slave Code
#include
#include
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/74)/2;
Serial.println(Value);
Arr[count]=Value;
count+=1;
}
for(int i=0;i<5>
{
TotalValue+=Arr[i];
}
AvgValue=TotalValue/count;
Wire.write(AvgValue);
delay(10);
}