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();
}