Arduino Ultrasonic Sensor

The sensor sends out an ultrasonic sound wave from the TRIG pin. When the sound wave hits an object, it reflects back and is detected by the ECHO pin.
The Arduino measures the time it takes for the signal to return and uses that to calculate the distance.

Distance (cm) = (Time in microseconds × 0.034) / 2

The speed of sound is 0.034 cm/µs. We divide by 2 because the sound travels to the object and back.

Required Components

Component Quantity Purpose
Arduino Uno / Nano / Mega 1 Main microcontroller
HC-SR04 Ultrasonic Sensor 1 Measures distance
Jumper Wires 4 Connections
Breadboard (optional) 1 Easy wiring
USB Cable 1 Power & programming

Pin Connections

Connect the HC-SR04 sensor to the Arduino as shown below:

HC-SR04 Pin Arduino Pin
VCC 5V
GND GND
TRIG Digital Pin 9
ECHO Digital Pin 10

Note: The ECHO pin outputs 5V, which is safe for Arduino Uno/Nano/Mega.

Arduino Code

Upload the following code to your Arduino:


#define TRIG_PIN 9
#define ECHO_PIN 10

void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}

void loop() {
long duration;
float distance;

// Clear trigger
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);

// Trigger ultrasonic burst
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);

// Measure echo time
duration = pulseIn(ECHO_PIN, HIGH);

// Convert time to distance
distance = (duration * 0.034) / 2;

// Output result
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");

delay(500);
}

Code Explanation

  • pulseIn() measures the duration of the ECHO signal.
  • The sensor sends a 40 kHz ultrasonic burst using the TRIG pin.
  • Arduino calculates the distance based on the speed of sound.
  • Distance is printed in centimeters to the Serial Monitor.

Testing the Sensor

  1. Upload the code to your Arduino
  2. Open the Serial Monitor
  3. Set the baud rate to 9600
  4. Move your hand in front of the sensor
  5. Watch the distance update live

You should see something like:

Distance: 15.4 cm

Troubleshooting

Issue Cause Solution
Always reads 0 cm Incorrect pin wiring Check TRIG and ECHO
Values jump around Object surface curved or too small Use a flat object
No Serial output Wrong baud rate Set Serial Monitor to 9600
Sensor not working No power Ensure 5V and GND connected properly

 

[mai mult...]