Ultrasonic
Ultrasonic
echo.
Ultrasonic Sensors
1s=1000000 µs
To display distance on a serial
monitor
Set trig pin as output and echo pin
as input
Set trig pin low for 2 microseconds
and Set trig pin high for 10
microseconds
Calculate distance by
applying formulae
pinMode(echoPin, INPUT);
// Sets the echoPin as I/P Serial.begin(9600);
// Starts the serial communication
}
void loop() {
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns
the sound wave travel time in
μs
Syntax Example
Syntax: Example:
Syntax Example
Syntax Example
if( condition ){ if( a == 1 ){
statements... Serial.println(“One”);
} }
else else if( a == 2 ){
if( condition ){ Serial.println(“Two”);
statements... }
} else{
:::::::::: Serial.println(“Some
else{ number”);
statements... }
LOGICAL OPERATORS
OPERATOR DESCRIPTION
&& Logical AND
|| Logical OR
! Logical NOT
TRUTH TABLE : Logical AND
Condition1 &&
Condition2
Condition1 || Condition2
! Condition1
Condition 1 Result
False True
True False
OBSTACLE AVOIDER-PROJECT
Things you
need
● Chassis with wheels and
motors
● Motor driver to control motors
● Arduino Board
● Ultrasonic sensors
● Jumper wires for connection
● Arduino code to control your bot
Algorithm
float duration;
float distance1, distance2;
pinMode(trig2,OUTPUT);
pinMode(echo2,INPUT);
pinMode(leftMotorN, OUTPUT);
pinMode(leftMotorP, OUTPUT);
pinMode(rightMotorN, OUTPUT);
pinMode(rightMotorP, OUTPUT);
Serial.begin(9600);
}
void loop(){
digitalWrite(trig1,LOW);
delayMicroseconds(2);
digitalWrite(trig1,HIGH);
delayMicroseconds(10);
digitalWrite(trig1,LOW);
duration = pulseIn(echo1,HIGH);
distance1 = duration*0.017;
digitalWrite(trig2,LOW);
delayMicroseconds(2);
digitalWrite(trig2,HIGH);
delayMicroseconds(10);
digitalWrite(trig2,LOW);
duration = pulseIn(echo2,HIGH);
distance2 = duration*0.017;
Serial.print(distance1);
Serial.print("\t");
Serial.print(distance2);
Serial.print("\t");
if(distance1 > 100 && distance2 >100){
Serial.println("Forward");
digitalWrite(leftMotorP,HIGH);
digitalWrite(leftMotorN,LOW);
digitalWrite(rightMotorP,HIGH) ;digitalWrite(rig
htMotorN,LOW);
}
else if(distance1 >=100 && distance2
<100){
Serial.println("Left");
digitalWrite(leftMotorP,LOW);
digitalWrite(leftMotorN,LOW);
digitalWrite(rightMotorP,HIGH) ;digitalWrite
(rightMotorN,LOW);
}
else if(distance1 <100 && distance2
>=100){
Serial.println("Right");
digitalWrite(leftMotorP,HIGH);
digitalWrite(leftMotorN,LOW);
digitalWrite(rightMotorP,LOW) ;digitalWrit
e(rightMotorN,LOW);
}
else{
Serial.println("Stop");
digitalWrite(leftMotorP,LOW);
digitalWrite(leftMotorN,LOW);
digitalWrite(rightMotorP,LOW) ;digital
Write(rightMotorN,LOW);
}
delay(500);
}
Circuit Diagram
Thank you