

The HC-SR04 is an ultrasonic distance sensor that uses sonar to measure the distance to an object. It emits ultrasonic waves and calculates the time it takes for the echo to return, providing accurate distance measurements. This sensor is widely used in robotics, automation, and obstacle detection systems due to its reliability and ease of use. It is capable of measuring distances ranging from 2 cm to 4 meters with a high degree of accuracy.








The HC-SR04 sensor has 4 pins, as described in the table below:
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply pin. Connect to 5V DC. |
| Trig | 2 | Trigger pin. Send a 10 µs HIGH pulse to initiate distance measurement. |
| Echo | 3 | Echo pin. Outputs a pulse width proportional to the measured distance. |
| GND | 4 | Ground pin. Connect to the ground of the power supply. |
Below is an example code to interface the HC-SR04 with an Arduino UNO:
// Define pins for the HC-SR04 sensor
const int trigPin = 9; // Trig pin connected to digital pin 9
const int echoPin = 10; // Echo pin connected to digital pin 10
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
// Set pin modes for Trig and Echo
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Send a 10 µs HIGH pulse to the Trig pin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Measure the duration of the HIGH pulse on the Echo pin
long duration = pulseIn(echoPin, HIGH);
// Calculate the distance in centimeters
float distance = duration / 58.0;
// Print the distance to the Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Wait for a short period before the next measurement
delay(500);
}
No Output or Incorrect Readings:
Unstable or Fluctuating Measurements:
Sensor Not Detecting Objects:
Q: Can the HC-SR04 measure distances below 2 cm?
A: No, the HC-SR04 has a minimum range of 2 cm. Objects closer than this may not be detected accurately.
Q: Can I use the HC-SR04 with a 3.3V microcontroller?
A: The HC-SR04 requires a 5V power supply. However, you can use a level shifter to safely interface the Echo pin with a 3.3V microcontroller.
Q: How can I improve measurement accuracy?
A: Use the sensor in a stable environment, avoid ultrasonic noise sources, and ensure proper alignment with the target object.