

The HC-SR04 is an ultrasonic distance sensor that uses sonar to measure the distance to an object. It emits ultrasonic waves and measures the time it takes for the echo to return, allowing for accurate distance measurements. This sensor is widely used in robotics, obstacle detection, and automation systems due to its reliability, affordability, and ease of use.








The HC-SR04 sensor is designed for precise distance measurement and operates using ultrasonic sound waves. Below are its key technical details:
| Parameter | Value |
|---|---|
| Operating Voltage | 5V DC |
| Operating Current | 15 mA |
| Measuring Range | 2 cm to 400 cm |
| Measuring Angle | 15° |
| Ultrasonic Frequency | 40 kHz |
| Resolution | 0.3 cm |
| Trigger Input Signal | 10 µs TTL pulse |
| Echo Output Signal | TTL pulse proportional to distance |
| Dimensions | 45 mm x 20 mm x 15 mm |
The HC-SR04 sensor has four pins, as described in the table below:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply pin. Connect to 5V DC. |
| 2 | Trig | Trigger pin. Send a 10 µs HIGH pulse to initiate distance measurement. |
| 3 | Echo | Echo pin. Outputs a pulse whose duration corresponds to the measured distance. |
| 4 | GND | Ground pin. Connect to the ground of the power supply. |
Below is an example code to use the HC-SR04 sensor with an Arduino UNO:
// Define pins for the HC-SR04 sensor
const int trigPin = 9; // Trigger 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 the sensor
pinMode(trigPin, OUTPUT); // Trig pin as output
pinMode(echoPin, INPUT); // Echo pin as 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
long distance = duration * 0.034 / 2;
// Print the distance to the Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Wait before the next measurement
delay(500);
}
No Output or Incorrect Readings:
Unstable or Fluctuating Measurements:
Short Measuring Range:
Q: Can the HC-SR04 measure distances below 2 cm?
A: No, the minimum measuring range of the HC-SR04 is 2 cm. Objects closer than this may not be detected accurately.
Q: Can I use the HC-SR04 with a 3.3V microcontroller?
A: Yes, but you need to use a level shifter or resistor divider for the Echo pin to avoid damaging the microcontroller.
Q: What is the maximum distance the HC-SR04 can measure?
A: The maximum range is 400 cm, but accuracy may decrease at longer distances.
Q: How can I improve measurement accuracy?
A: Use the sensor in a stable environment, avoid ultrasonic interference, and ensure proper alignment with the target object.