The HC-SR04 is an ultrasonic distance sensor that uses sonar to measure the distance to an object. It emits a high-frequency sound wave and measures the time it takes for the echo to return, allowing it to calculate the distance based on the speed of sound. This sensor is widely used in robotics, automation, and obstacle detection systems due to its accuracy, affordability, and ease of use.
The HC-SR04 sensor is designed for precise distance measurement and operates within a specific range of environmental conditions. Below are its key technical details:
Parameter | Value |
---|---|
Operating Voltage | 5V DC |
Operating Current | 15 mA (typical) |
Measuring Range | 2 cm to 400 cm |
Measuring Angle | 15° |
Accuracy | ±3 mm |
Signal Frequency | 40 kHz |
Trigger Input Signal | 10 µs TTL pulse |
Echo Output Signal | Pulse width proportional to distance |
Dimensions | 45 mm x 20 mm x 15 mm |
The HC-SR04 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 width corresponds to the measured distance. |
4 | GND | Ground pin. Connect to the ground of the power supply. |
The HC-SR04 sensor is simple to use and can be integrated into a variety of circuits. Below are the steps to use it effectively:
Below is an example Arduino sketch to measure distance using the HC-SR04:
// 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
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 signal on the Echo pin
long duration = pulseIn(echoPin, HIGH);
// Calculate the distance in cm
float 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
Fluctuating Distance Measurements
Echo Pin Always LOW
Distance Readings Are Too High
Q: Can the HC-SR04 measure distances below 2 cm?
A: No, the sensor's minimum range 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: The HC-SR04 requires 5V for operation. However, you can use a level shifter to safely interface the Echo pin with a 3.3V microcontroller.
Q: What is the maximum sampling rate of the HC-SR04?
A: The sensor requires approximately 60 ms for each measurement, allowing a maximum sampling rate of about 16 Hz.
Q: Can the HC-SR04 detect transparent objects?
A: The sensor may struggle to detect transparent or very small objects, as they may not reflect enough ultrasonic waves.
By following this documentation, you can effectively integrate the HC-SR04 ultrasonic sensor into your projects for accurate distance measurement.