HC-SR04 Ultrasonic Distance Sensor
Wiring
| HC-SR04 Pin | Arduino Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| TRIG | D9 |
| ECHO | D10 |
Code
const int trig = 9, echo = 10;
void setup() { Serial.begin(9600); pinMode(trig, OUTPUT); pinMode(echo, INPUT); }
void loop() {
digitalWrite(trig, LOW); delayMicroseconds(2);
digitalWrite(trig, HIGH); delayMicroseconds(10);
digitalWrite(trig, LOW);
long duration = pulseIn(echo, HIGH);
float distance = duration * 0.034 / 2; // cm
Serial.print(distance); Serial.println(" cm");
delay(500);
}
Specifications
- Range: 2–400 cm
- Accuracy: ±3 mm
- Angle: ~15° beam width
Troubleshooting
- Always reads 0 — check TRIG/ECHO pins, sensor needs 5V, not 3.3V
- Wrong readings — object outside the 15° beam or too close (under 2 cm)
- ESP32 note — HC-SR04 needs 5V power but ECHO outputs 5V. Use voltage divider on ECHO pin