#27Principiante

HC-SR04 Medición de distancia (pantalla en serie)

4.6(44)
64 completado
HC-SR04 Medición de distancia (pantalla en serie)
Sensor ultrasónico HC-SR04 para medir distancias y mostrar el resultado en cm en el monitor serie. Enseña el principio del cálculo de distancias con ondas sonoras.

Video

Diagrama del circuito

HC-SR04 Medición de distancia (pantalla en serie) - Circuit

Código fuente

Arduino (C++)
1int echoPin = 6;
2int trigPin = 7;
3int maxDistance = 100;
4int minDistance = 3;
5
6void setup() {
7  pinMode(trigPin, OUTPUT);
8  pinMode(echoPin, INPUT);
9  Serial.begin(9600); 
10}
11
12void loop() {
13  digitalWrite(trigPin, HIGH);
14  delayMicroseconds(10);
15  digitalWrite(trigPin, LOW);
16  
17  unsigned long duration = pulseIn(echoPin, HIGH);
18  double totalPath = (double)duration * 0.034;
19  int distance = totalPath / 2;
20  
21  if (distance > minDistance && distance < maxDistance) {
22    Serial.print("Distance: ");
23    Serial.print(distance);
24    Serial.println("cm");
25  }
26  
27  delay(500);
28}

Preguntas frecuentes

¿Cómo mide la distancia el HC-SR04?▾

El sensor emite una onda sonora de 40 kHz y mide el tiempo de retorno del eco. El sonido se propaga por el aire a una velocidad aproximada de 343 m/s; la distancia se convierte a centímetros mediante la fórmula: distancia = tiempo × 0,0343 / 2 (la división por 2 corresponde al tiempo de ida y vuelta).

¿Cuál es la distancia más corta y la más larga que puede medir?▾

En la práctica, mide distancias de entre 2 cm y 400 cm aproximadamente. A distancias inferiores a 2 cm, así como a distancias muy grandes o en superficies que absorben el sonido (tela, espuma), la medición puede ser errónea o dar un resultado de 0.

A veces se leen valores de 0 o muy grandes, ¿por qué?▾

Si no se recibe el eco, pulseIn entra en tiempo de espera. Asegúrate de que el sensor apunte hacia una superficie plana y dura, espera al menos 60 ms entre mediciones y filtra las lecturas erróneas en el código.

¿Puedo utilizarlo con el ESP32?▾

El HC-SR04 funciona a 5 V y el pin ECHO proporciona una salida de 5 V. Dado que el ESP32 funciona con lógica de 3,3 V, debes colocar un divisor de tensión (por ejemplo, 1 kΩ + 2 kΩ) en la línea ECHO o utilizar el modelo HC-SR04P, compatible con 3,3 V.

HC-SR04 Medición de distancia (pantalla en serie) | BlueGrays