Project 2 - Measuring distance of an object using ultrasonic sensor (HC-SR04)
Ans:
// Master code//
#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("Distance= ");
lcd.print(Distance);
lcd.print("inch");
Serial.println(Distance);
delay(50);
wire.end();
}
//Slave code //
#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/74)/2;
Serial.println(Value);
Arr[count]=Value;
count+=1;
}
for (int i=0;i<5;i++)
{
TotalValue+=Arr[i];
}
AvgValue=TotalValue/count;
wire.write(AvgValue);
delay(10);
}