Make ultrasonic sensor more efficient with arduino
If you have seen my last post on ultrasonic sensor then i have some very basic trick to make ultrasonic sensor to give some efficient result by using averaging method i have done it....
the connection is same as my last post after done connection write this code
const int t1 = 7;
const int p1 = 8;
void setup() {
Serial.begin(9600);
pinMode(p1, INPUT);
pinMode(t1, OUTPUT);
}
void loop()
{
long duration1, cm1;
giveSignal(t1);
duration1 = pulseIn(p1, HIGH);
cm1 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration2 = pulseIn(p1, HIGH);
cm2 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration3 = pulseIn(p1, HIGH);
cm3 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration4 = pulseIn(p1, HIGH);
cm4 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration5 = pulseIn(p1, HIGH);
cm5 = microsecondsToCentimeters(duration1);
long cm = (cm1+cm2+cm3+cm4+cm5) / 5;
Serial.print(cm);
Serial.println("cm1 ");
delay(1000);
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
void giveSignal(int pingPin)
{
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
}
upload this code to arduino it will give you a average value of your distance
the connection is same as my last post after done connection write this code
const int t1 = 7;
const int p1 = 8;
void setup() {
Serial.begin(9600);
pinMode(p1, INPUT);
pinMode(t1, OUTPUT);
}
void loop()
{
long duration1, cm1;
giveSignal(t1);
duration1 = pulseIn(p1, HIGH);
cm1 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration2 = pulseIn(p1, HIGH);
cm2 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration3 = pulseIn(p1, HIGH);
cm3 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration4 = pulseIn(p1, HIGH);
cm4 = microsecondsToCentimeters(duration1);
giveSignal(t1);
long duration5 = pulseIn(p1, HIGH);
cm5 = microsecondsToCentimeters(duration1);
long cm = (cm1+cm2+cm3+cm4+cm5) / 5;
Serial.print(cm);
Serial.println("cm1 ");
delay(1000);
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
void giveSignal(int pingPin)
{
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
}
upload this code to arduino it will give you a average value of your distance
Comments
Post a Comment