El HC-SR04 es un sensor de distancia ultrasónico que mide el alcance enviando un pulso sonoro y midiendo el tiempo de regreso del eco. Normalmente usa una alimentación de 5V y una interfaz digital simple de trigger/echo, lo que facilita su lectura en proyectos basados en Arduino y ESP32.
| Pin | Señal | Descripción |
|---|---|---|
Vcc |
power | bottom-edge power pin hole, leftmost of the 4-pin header |
Trig |
digital | bottom-edge trigger pin hole, second from left |
Echo |
digital | bottom-edge echo pin hole, third from left |
Gnd |
ground | bottom-edge ground pin hole, rightmost of the 4-pin header |
| Desde | Hasta | Cable |
|---|---|---|
board:5V |
x1:Vcc |
red |
board:GND |
x1:Gnd |
black |
board:D9 |
x1:Trig |
green |
board:D10 |
x1:Echo |
blue |
Este ejemplo se escribió y verificó por compilación para arduino-uno. Codey Online lo adapta a cualquier otra placa compatible.
// HC-SR04 ultrasonic distance sensor example
// Wiring:
// HC-SR04 Vcc -> 5V
// HC-SR04 Gnd -> GND
// HC-SR04 Trig -> D9
// HC-SR04 Echo -> D10
const int trigPin = 9;
const int echoPin = 10;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
digitalWrite(trigPin, LOW);
Serial.println("HC-SR04 ready");
}
void loop() {
// Send a 10 microsecond pulse to start a measurement
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the echo pulse length (timeout after 30 ms)
unsigned long duration = pulseIn(echoPin, HIGH, 30000UL);
if (duration == 0) {
Serial.println("Out of range or no echo");
} else {
// Convert time to distance in centimeters
// Speed of sound approx. 343 m/s => 29.1 us per cm round trip
float distanceCm = duration / 58.0;
Serial.print("Distance: ");
Serial.print(distanceCm, 1);
Serial.println(" cm");
}
delay(500);
}
Describe lo que quieres construir. Codey Online escribe el codigo, dibuja el esquema de conexiones, lo compila y graba tu placa directamente desde el navegador.
Empieza gratis