University of Perpetual Help System Dalta
College of Engineering
           CpE Department
                        CONTROL SYSTEMS LABORATORY
                                  Machine Problem No.5
                                    Ultrasonic Sensor
I.            OBJECTIVES
           1. To be able to understand the use of ULTRASONIC Sensors and its
           Pinouts.
           2. Create a program that will display the variable changes in the distance
           being sensed.
           3. Create a program that will have an ultrasonic sensor as an input and will
           determine the output function of the servo motor.
          Arduino or Genuino Board
          Ultrasonic Sensor
          Servo Motor
          hook-up wires
II.           DISCUSSION
BASIC INFORMATION
Small low-cost ultrasonic distance measurement modules are an effective way to
sense the presence of nearby objects and the distance to them. Often Robots use
these to sense objects or collisions and take appropriate action.
They have two transducers, basically a speaker and a microphone. Ultrasound is
a high frequency sound (typically 40 KHz is used). A short burst of sound waves
(often only 8 cycles) is sent out the "Transmit" transducer. Then the "Receive"
transducer listens for an echo. Thus, the principle of ultrasonic distance
measurement is the same as with Radio-based radar. Distance is calculated as: L
= C × T/2 , where L is the length, C is the speed of sound in air, T is the time
difference from the transmission from the transmitter to the receiver. This is
divided by 2 for the two-directions the sound travels. Speed of sound is about: C
= 344m / s (20 degrees C room temperature).
Speed of sound in air velocity is affected by the air density, and for high accuracy
the temperature must be taken into account, either within the module electronics
(In the SRF-06 module we have) or in the Arduino software.
III.          ACTIVITY
Machine Problem No.5 Ultrasonic Sensors                                     1
                                                     ENGR. CYD LAURENCE B. SANTOS
       University of Perpetual Help System Dalta
       College of Engineering
       CpE Department
                   CONTROL SYSTEMS LABORATORY
1. Encode the given program. Assign filename sam1.ino
const int pingPin = 7;
void setup() {
 // initialize serial communication:
 Serial.begin(9600);
}
void loop() {
 // establish variables for duration of the ping, and the distance result
 // in inches and centimeters:
 long duration, inches, cm;
 // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
 // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
 pinMode(pingPin, OUTPUT);
 digitalWrite(pingPin, LOW);
 delayMicroseconds(2);
 digitalWrite(pingPin, HIGH);
 delayMicroseconds(5);
 digitalWrite(pingPin, LOW);
 // The same pin is used to read the signal from the PING))): a HIGH
pulse
 // whose duration is the time (in microseconds) from the sending of the
ping
 // to the reception of its echo off of an object.
 pinMode(pingPin, INPUT);
 duration = pulseIn(pingPin, HIGH);
 // convert the time into a distance
 inches = microsecondsToInches(duration);
 cm = microsecondsToCentimeters(duration);
 Serial.print(inches);
 Serial.print("in, ");
 Serial.print(cm);
 Serial.print("cm");
 Serial.println();
 delay(100);
}
long microsecondsToInches(long microseconds) {
  // According to Parallax's datasheet for the PING))), there are 73.746
  // microseconds per inch (i.e. sound travels at 1130 feet per second).
  // This gives the distance travelled by the ping, outbound and return,
Machine Problem No.5 Ultrasonic Sensors                          2
                                              ENGR. CYD LAURENCE B. SANTOS
        University of Perpetual Help System Dalta
        College of Engineering
        CpE Department
                     CONTROL SYSTEMS LABORATORY
 // so we divide by 2 to get the distance of the obstacle.
 // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
 return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds) {
  // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  // The ping travels out and back, so to find the distance of the object
we
  // take half of the distance travelled.
  return microseconds / 29 / 2;
}
Ultrasonic Sensor with Servo Motor
#include <Servo.h>
// this constant won't change. It's the pin number of the sensor's output:
Servo myservo;
const int pingPin = 7;
void setup() {
 // initialize serial communication:
 Serial.begin(9600);
 myservo.attach(9);
}
void loop() {
 // establish variables for duration of the ping, and the distance result
 // in inches and centimeters:
 long duration, inches, cm;
 // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
 // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
 pinMode(pingPin, OUTPUT);
 digitalWrite(pingPin, LOW);
 delayMicroseconds(2);
 digitalWrite(pingPin, HIGH);
 delayMicroseconds(5);
 digitalWrite(pingPin, LOW);
 // The same pin is used to read the signal from the PING))): a HIGH pulse
 // whose duration is the time (in microseconds) from the sending of the ping
 // to the reception of its echo off of an object.
 pinMode(pingPin, INPUT);
 duration = pulseIn(pingPin, HIGH);
 // convert the time into a distance
 inches = microsecondsToInches(duration);
 cm = microsecondsToCentimeters(duration);
Machine Problem No.5 Ultrasonic Sensors                                     3
                                                  ENGR. CYD LAURENCE B. SANTOS
        University of Perpetual Help System Dalta
        College of Engineering
        CpE Department
                      CONTROL SYSTEMS LABORATORY
 Serial.print(inches);
 Serial.print("in, ");
 Serial.print(cm);
 Serial.print("cm");
 Serial.println();
 delay(100);
 if(inches<=20)
 {
   myservo.write(90);
   delay(1000);
 }
 else
 {
  myservo.write(0);
  delay(1000);
 }
}
long microsecondsToInches(long microseconds) {
  // According to Parallax's datasheet for the PING))), there are 73.746
  // microseconds per inch (i.e. sound travels at 1130 feet per second).
  // This gives the distance travelled by the ping, outbound and return,
  // so we divide by 2 to get the distance of the obstacle.
  // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
  return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds) {
  // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  // The ping travels out and back, so to find the distance of the object we
  // take half of the distance travelled.
  return microseconds / 29 / 2;
}
2. Wire the corresponding schematic diagram.
Ultrasonic Sensor
Machine Problem No.5 Ultrasonic Sensors                                  4
                                                  ENGR. CYD LAURENCE B. SANTOS
       University of Perpetual Help System Dalta
       College of Engineering
       CpE Department
                    CONTROL SYSTEMS LABORATORY
Ultrasonic Sensor with Servo Motor
3. Observe and gather the conclusion.
Machine Problem No.5 Ultrasonic Sensors                     5
                                          ENGR. CYD LAURENCE B. SANTOS
      University of Perpetual Help System Dalta
      College of Engineering
      CpE Department
                  CONTROL SYSTEMS LABORATORY
IV.      PICTURE OF THE OUTPUT
Machine Problem No.5 Ultrasonic Sensors                     6
                                          ENGR. CYD LAURENCE B. SANTOS
      University of Perpetual Help System Dalta
      College of Engineering
      CpE Department
                  CONTROL SYSTEMS LABORATORY
                  Fig. 1 Ultrasonic Sensor with Servo Motor
        Fig. 2 Ultrasonic Sensor with two Servo Motor using Tinkercad
V.       SOURCE CODE
Machine Problem No.5 Ultrasonic Sensors                             7
                                              ENGR. CYD LAURENCE B. SANTOS
       University of Perpetual Help System Dalta
       College of Engineering
       CpE Department
                        CONTROL SYSTEMS LABORATORY
Ultrasonic Sensor with two Servo Motor using Tinkercad
      #include <Servo.h>
      Servo servoLeft;
      Servo servoRight;
      // this constant won't change. It's the pin number of the sensor's output:
      const int pingPin = 7;
      void setup() {
           servoLeft.attach(6);
          servoRight.attach(9);
      void loop() {
          long duration, inches, cm;
          pinMode(pingPin, OUTPUT);
          digitalWrite(pingPin, LOW);
          delayMicroseconds(2);
          digitalWrite(pingPin, HIGH);
          delayMicroseconds(5);
          digitalWrite(pingPin, LOW);
          pinMode(pingPin, INPUT);
          duration = pulseIn(pingPin, HIGH);
          inches = microsecondsToInches(duration);
          cm = microsecondsToCentimeters(duration);
          Serial.print(inches);
          Serial.print("in, ");
          Serial.print(cm);
          Serial.print("cm");
          Serial.println();
          delay(100);
          if(inches<=20)
Machine Problem No.5 Ultrasonic Sensors                                 8
                                                 ENGR. CYD LAURENCE B. SANTOS
       University of Perpetual Help System Dalta
       College of Engineering
       CpE Department
                      CONTROL SYSTEMS LABORATORY
          {
           servoLeft.write(180);
           servoRight.write(0);
           delay(1000);
          }
          else
          {
           servoLeft.write(90);
           servoRight.write(90);
           delay(1000);
          }
      }
      long microsecondsToInches(long microseconds) {
        // According to Parallax's datasheet for the PING))), there are 73.746
        // microseconds per inch (i.e. sound travels at 1130 feet per second).
        // This gives the distance travelled by the ping, outbound and return,
        // so we divide by 2 to get the distance of the obstacle.
        // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
        return microseconds / 74 / 2;
      }
      long microsecondsToCentimeters(long microseconds) {
        // The speed of sound is 340 m/s or 29 microseconds per centimeter.
        // The ping travels out and back, so to find the distance of the object we
        // take half of the distance travelled.
        return microseconds / 29 / 2;
      }
VI.         OBSERVATION
In this laboratory activity, we are tasked to use ultrasonic senor with
servo motor. Using the given diagram and breadboard, we
connected the jumping wires to the ultrasonic senor and servo
motor. First, the 5v output of Arduino was connected to the sensors
Machine Problem No.5 Ultrasonic Sensors                                  9
                                                  ENGR. CYD LAURENCE B. SANTOS
          University of Perpetual Help System Dalta
          College of Engineering
          CpE Department
                      CONTROL SYSTEMS LABORATORY
VCC then, the trigger and echo was connected to the digital I/O and
lastly the sensor ground was connected to the Arduino ground.
When it comes to the servo motor it was easily installed since its
wire is color coded, the red wire was connected to the 5v, the brown
wire to the ground and orange wire to the PWM of the Arduino.
When it comes to the coding part the source code was already
given, but when it comes to the two servo motors the source code
needs a little editing. In the source code using two servo motors, we
declared that there’s two servo motors that will be used (Servo
servoLeft, Servo servoRight).
VII.        CONCLUSION
In conclusion, ultrasonic sensors function when the sensor emits an
ultrasonic wave and receives the wave reflected back from the
target.
Machine Problem No.5 Ultrasonic Sensors                     10
                                          ENGR. CYD LAURENCE B. SANTOS
       University of Perpetual Help System Dalta
       College of Engineering
       CpE Department
                   CONTROL SYSTEMS LABORATORY
We tested this statement by making our own device, when we setup
the maximum and minimum range of the sensor on how it will
detect object, we used the servo motor as the output device. The
servo motor rotates to a certain angle when the sensor detects
object nearby. Ultrasonic sensors also have its own limitations like it
can detect false signals coming from the airwaves disturbed by an
air conditioning system and a pulse coming from a ceiling fan or it
cannot distinguish between different shapes and sizes.
Machine Problem No.5 Ultrasonic Sensors                      11
                                          ENGR. CYD LAURENCE B. SANTOS