Skip to main content

Interfacing Ultrasonic Sensor with Arduino Uno


In this blog, we will be discussing interfacing ultrasonics sensor with Arduino Uno.

# Sensor Data Sheet:

Working Voltage:               5V
Working Current:               15mA
Range:                                 2cm - 4m with an angle of 15 degrees
Maximum Trigger Pulse:   10 MicroSeconds

# Pin-Out:



Vcc = 5V ... Power Supply Pin
Trigger Pin: Send a pulse to trigger pin (Output Pin)
Echo Pin: Recieve the pulse from Echo Pin (Input Pin)
Gnd ... Power Supply Pin

# Arduino Connection:




# Working:




Ultrasonic Sensor basically consists of a Transmitter and a Reciever.

When it receives an input pulse at the trigger pin, it transmits ultrasonic waves.

These waves get reflected by the object and are captured by the receiver.

It then receives the pulse from the echo pin.

The time taken by the signal is calculated by Arduino.

And the speed of the Ultrasonic Waves is fixed = 334m/s

Then the distance of the object can be calculated using the formula...

Speed = Distance / Time

=> Distance(Unknown) = Speed (Constant)* Time (From sensor)

# Arduino Code:

int trig_pin = 3; //define your trigger pin here
int echo_pin = 4; //define your echo pin here

float distance; //distance will be measured in cms


void setup() {
  
  pinMode(trig_pin,OUTPUT);
  pinMode(echo_pin,INPUT);
  Serial.begin(9600);
}

void loop() {
  
  distance = ultrasonic_sensor_data(trig_pin,echo_pin);
  Serial.println(distance);

}


float ultrasonic_sensor_data(int x,int y)
{
  
  float duration;
  float distance_temp;
  float speed_of_ultrasonic = 334; //speed of ultrasonic waves in air
  
  digitalWrite(x, LOW);
  delayMicroseconds(2);
  digitalWrite(x, HIGH);
  delayMicroseconds(5);
  digitalWrite(x, LOW);
  duration = pulseIn(y,HIGH);
  distance_temp = (( speed_of_ultrasonic * duration )*100)/2;
  return distance_temp;
  
  }

# Applications:

1. Object Detection
2. Distance Calculation 

Comments

Post a Comment

Popular posts from this blog

Interfacing 4x4 Matrix Keypad with Arduino Uno

In this blog, we will be discussing interfacing 4x4 Matrix Keypad with Arduino Uno. Matrix keypad basically consists of push buttons.  At a particular instant, if we know which push button is pressed, we can say which character was given by the user. # Module Data Sheet: Working Current:   30mA Working Voltage:   5-24V # Pin-Out: X1, X2, X3, X4 are rows. Y1, Y2, Y3, Y4 are columns. # Arduino Connection: # Working: The working is simple.  We know that at a time only one key will be pressed. So we have to check which key is pressed at that given time. There are 4 rows and 4 columns. We will first make Row R1 high. Then check whether C1, C2, C3 or C4 is high or not. If not we will proceed to the next row. For example... Let's say we found C2 to be high when R3 was high. => The key (3,2) was pressed i.e. Key '8' was pressed. This process will keep on repeating very fast. # Arduino Code: #include ...

Theory of Arduino Wire Library

In this blog, we will be discussing the Wire Library. Wire Library is used for communication between two boards in the I2C Communication Protocol. In Arduino Uno, the Analog Pins A4 and A5 are used for this purpose. A4 = SDA ( Data Bus ) A5 = SCL ( Clock Bus ) The basic functions used in the Wire Library are as follows... begin() requestFrom() beginTransmission() endTransmission() write() available() read() SetClock() onRecieve() onRequest() Now lets start discussing about these functions... 1.Wire.begin() or Wire.begin(Slave_Address) Wire.begin() intializes I2C communication as an Master Device. Wire.begin(Address) initializes I2C communication as a Slave Device. The Address is of 7 bit and thus at max, we can connect 127 devices in this protocol. The Address is generally specified in the datasheet. The address up to 8 is reserved by the manufacturer and thus can't be used.  2. Wire.requestFrom(Slave_Address, No. of bytes,'TRUE'/'FALS...