HC-SR04 Ultrasonic Sensor¶
4-pin time-of-flight distance sensor — TRIG sends a 10 µs pulse, ECHO returns a pulse whose width is proportional to the round-trip time. Range ~2 cm to 4 m.
In stock
Manufacturer
1 files · 79 KB
Specs¶
| Spec | Value |
|---|---|
| Range | 2 cm – 400 cm |
| Resolution | 3 mm |
| Beam angle | 15° |
| Trigger pulse | 10 µs HIGH |
| Echo pulse | up to 38 ms |
| Voltage | 5 V |
| Current | 15 mA |
5 V logic
The HC-SR04 outputs 5 V on ECHO. If your MCU is 3.3 V (ESP32, Pico), use a voltage divider (1k + 2k) or a level shifter on the ECHO pin.
Wiring (Arduino Uno)¶
| Module | Arduino |
|---|---|
| VCC | 5 V |
| TRIG | D9 |
| ECHO | D10 |
| GND | GND |
Code¶
const int TRIG = 9;
const int ECHO = 10;
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(TRIG, LOW); delayMicroseconds(2);
digitalWrite(TRIG, HIGH); delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long dur = pulseIn(ECHO, HIGH, 30000UL); // 30 ms timeout
float cm = dur * 0.0343 / 2.0;
Serial.print(cm); Serial.println(" cm");
delay(100);
}
Speed of sound ≈ 343 m/s = 0.0343 cm/µs. Halve for round-trip.
Schematic¶
The HC-SR04 PCB uses an STC11/STM8 MCU + MAX232-style driver + 40 kHz transducers. See the protocol timing in the datasheet PDF.
Last updated: 2026-05-13 · Source on GitHub