
Midiendo distancias con el sensor ultrasónico HC-SR04 y Arduino
Si alguna vez te has preguntado cómo sabe un coche moderno que está a punto de chocar al aparcar o cómo un robot evita darse contra una pared, la respuesta suele estar en sensores como el que vamos a utilizar hoy.
En esta práctica vamos a trabajar con el popular HC-SR04, un sensor ultrasónico capaz de medir distancias utilizando sonido.
Y sí, después de una intensa sesión de depuración en la que descubrimos que algunos problemas de electrónica tienen causas mucho más simples de lo que parecen, conseguimos hacerlo funcionar correctamente.
¿Qué es el HC-SR04?
El HC-SR04 es un sensor ultrasónico que permite medir distancias sin necesidad de tocar ningún objeto.
Funciona de forma parecida a un murciélago.
🦇 Emite un sonido ultrasónico.
🦇 El sonido rebota en un objeto.
🦇 El eco regresa al sensor.
🦇 El sensor calcula cuánto ha tardado en volver.
🦇 Arduino convierte ese tiempo en una distancia.
Todo ello ocurre miles de veces más rápido de lo que nuestro oído puede percibir.

¿Qué son los ultrasonidos?
Los ultrasonidos son sonidos con una frecuencia tan alta que los seres humanos no podemos escucharlos.
Mientras que nuestro oído suele escuchar hasta unos:
20.000 Hz
el HC-SR04 trabaja aproximadamente a:
40.000 Hz
Por eso nunca oiremos el sonido que está emitiendo.
Material necesario
- 1 placa Arduino UNO o compatible.
- 1 sensor HC-SR04.
- 4 cables Dupont.
- Arduino IDE.
Conexión del sensor
El HC-SR04 dispone de cuatro pines:
VCC
TRIG
ECHO
GND
Las conexiones utilizadas han sido las siguientes:
| HC-SR04 | Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| TRIG | D4 |
| ECHO | D5 |
Una anécdota antes de empezar…
Durante nuestras primeras pruebas el sensor se negaba rotundamente a funcionar.
Probamos:
- Cambiar el código.
- Cambiar los pines.
- Cambiar de sensor.
- Revisar la alimentación.
Todo parecía correcto.
Hasta que descubrimos el problema.
Los cables de TRIG y ECHO estaban conectados por error a la línea de masa de la protoboard.
Moraleja científica:
Antes de sospechar de Arduino, del sensor o de una conspiración internacional de los fabricantes de componentes electrónicos, conviene revisar dos veces el cableado.
Programa completo
#define TRIG 4
#define ECHO 5
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
Serial.begin(9600);
Serial.println("Iniciando HC-SR04...");
}
void loop() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long duracion = pulseIn(ECHO, HIGH);
float distancia = duracion * 0.0343 / 2;
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
delay(500);
}
¿Cómo funciona el programa?
Definición de pines
#define TRIG 4
#define ECHO 5
Indicamos dónde hemos conectado las señales del sensor.
Generación del pulso ultrasónico
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
Arduino envía un pulso de 10 microsegundos.
Ese pulso provoca que el sensor emita una ráfaga ultrasónica.
Recepción del eco
long duracion = pulseIn(ECHO, HIGH);
Arduino mide cuánto tiempo permanece activa la señal ECHO.
Ese tiempo corresponde al viaje de ida y vuelta del sonido.
Cálculo de la distancia
float distancia = duracion * 0.0343 / 2;
La velocidad del sonido es aproximadamente:
0,0343 cm por microsegundo
Dividimos entre dos porque el sonido realiza:
- Un viaje de ida.
- Un viaje de vuelta.
Resultado esperado
Al abrir el monitor serie deberíamos obtener algo parecido a:
Iniciando HC-SR04...
Distancia: 52.4 cm
Distancia: 52.3 cm
Distancia: 52.2 cm
Distancia: 18.7 cm
Distancia: 18.5 cm
Si acercamos la mano al sensor veremos cómo la distancia disminuye inmediatamente.
Experimentos propuestos
Experimento 1: Tu mano como obstáculo
Acerca y aleja la mano lentamente.
Observa cómo cambia la distancia.
Experimento 2: Midiendo objetos
Calcula la distancia a:
- Un libro.
- Una caja.
- Una pared.
- Una silla.
Compara después con una regla.
Experimento 3: Aparcamiento inteligente
Sitúa una caja frente al sensor.
Acércala poco a poco simulando un coche aparcando.
Experimento 4: Puerta automática
Imagina que el sensor controla la apertura de una puerta.
¿A qué distancia debería abrirse?
Experimento 5: Robot evita obstáculos
Piensa cómo utilizarías este sensor en un robot capaz de desplazarse sin chocar.
Aplicaciones reales
Sensores similares al HC-SR04 se utilizan en:
🚗 Sensores de aparcamiento.
🤖 Robots móviles.
🚪 Puertas automáticas.
🚁 Drones.
🏭 Automatización industrial.
🚰 Medición de niveles de agua en depósitos.
Lo que hemos aprendido
En esta práctica hemos descubierto cómo un simple sensor puede medir distancias utilizando únicamente sonido.
También hemos comprobado algo muy importante en cualquier proyecto de electrónica:
La mayoría de los errores no suelen estar en el código.
Suelen estar en los cables.
Y aunque a veces resulte frustrante, resolver esos pequeños problemas forma parte del trabajo de cualquier ingeniero, científico o maker.
Con el HC-SR04 añadimos una nueva capacidad a nuestro laboratorio de sensores: ahora ya somos capaces de medir no solo temperatura, humedad, partículas y gases, sino también distancias.
Etiqueta:arduino, distancia, hc-sr04, keyestudio, robótica



