Arduino - sensor ultrasónico
En este tutorial, vamos a aprender:
- Cómo funciona el sensor ultrasónico
- Cómo conectar el sensor ultrasónico al Arduino
- Cómo programar Arduino para leer el estado del sensor ultrasónico
- Cómo usar Arduino y el sensor ultrasónico HC-SR04 para medir la distancia hasta un objeto
- Cómo filtrar el ruido de las mediciones de distancia del sensor ultrasónico en el código de Arduino
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del Sensor Ultrasónico
El sensor ultrasónico HC-SR04 se utiliza para medir la distancia a un objeto mediante el uso de ondas ultrasónicas.
Esquema de pines
El sensor ultrasónico HC-SR04 incluye cuatro pines:
- Pin VCC: debe estar conectado a VCC (5 V)
- Pin GND: debe estar conectado a GND (0 V)
- Pin TRIG: este pin recibe la señal de control (pulso) desde Arduino.
- Pin ECHO: este pin envía una señal (pulso) al Arduino. Arduino mide la duración del pulso para calcular la distancia.

Cómo funciona
- Microcontrolador: genera un pulso de 10 microsegundos en el pin TRIG.
- El sensor ultrasónico emite automáticamente las ondas ultrasónicas.
- La onda ultrasónica se refleja tras chocar con un obstáculo.
- El sensor ultrasónico:
- Detecta la onda ultrasónica reflejada.
- Mide el tiempo de viaje de la onda ultrasónica.
Cómo obtener la distancia desde un sensor ultrasónico
Para obtener la distancia desde el sensor ultrasónico, solo necesitamos realizar dos pasos (1 y 6 en la parte de Cómo funciona)
- Genera un pulso de 10 microsegundos en el pin TRIG
- Mide la duración del pulso en el pin ECHO y luego calcula la distancia entre el sensor y el obstáculo
Cálculo de la distancia
Tenemos:
- El tiempo de viaje de la onda ultrasónica (µs): travel_time = pulse_duration
- La velocidad de la onda ultrasónica: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Entonces:
- La distancia de propagación de la onda ultrasónica (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- La distancia entre el sensor y el obstáculo (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
Arduino - Sensor ultrasónico
Los pines de Arduino pueden generar un pulso de 10 microsegundos y medir la duración del pulso. Por lo tanto, podemos obtener la distancia del sensor ultrasónico utilizando dos pines de Arduino:
- Un pin está conectado al PIN TRIG para generar un pulso de 10 μs en el PIN TRIG del sensor
- Otro pin está conectado al PIN ECHO para medir el pulso que emite el sensor
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Cómo programar para un sensor ultrasónico
- Genera un pulso de 10 microsegundos en el pin de Arduino utilizando las funciones digitalWrite() y delayMicroseconds(). Por ejemplo, el pin 9:
- Mide la duración del pulso (μs) en el pin de Arduino utilizando la función pulseIn(). Por ejemplo, el pin 8:
- Calcular la distancia (cm):
Código de Arduino
Pasos R\u00e1pidos
- Copia el código anterior y ábrelo con Arduino IDE
- Haz clic en el botón Subir en Arduino IDE para cargar el código al Arduino

- Abrir el Monitor Serial
- Mueve tu mano frente al sensor ultrasónico
- Mira la distancia desde el sensor hasta tu mano en el Monitor Serial
Explicación del código
Puede encontrar la explicación en las líneas de comentarios del código de Arduino anterior.
Cómo filtrar ruido de las mediciones de distancia del sensor ultrasónico
El resultado de la medición del sensor ultrasónico contiene ruido. En algunas aplicaciones, el resultado con ruido provoca una operación no deseada. Podemos eliminar el ruido usando el siguiente algoritmo:
- Tomando múltiples mediciones y almacenarlas en un arreglo
- Ordenando el arreglo en orden ascendente
- Filtrando el ruido
- Algunas de las muestras más pequeñas se consideran ruido → ignorarlas
- Algunas de las muestras más grandes se consideran ruido → ignorarlas
- ⇒ obtener el promedio de las muestras centrales
- Las cinco muestras más pequeñas se consideran ruido → ignóralas
- Las cinco muestras más grandes se consideran ruido → ignóralas
- ⇒ obtén el promedio de las 10 muestras centrales (desde la 5ª hasta la 14ª)
El código de ejemplo a continuación toma 20 mediciones.
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.
Desafíate a ti mismo
Utiliza un sensor ultrasónico para realizar uno de los siguientes proyectos:
- Evitación de colisiones para un coche RC.
- Detección del nivel de llenado de la papelera.
- Monitoreo del nivel de la papelera.
- Abrir/cerrar automáticamente la papelera. Consejo: Consulte a Arduino - Servo Motor.
Conocimiento Adicional
Algunos fabricantes proporcionan sensores ultrasónicos que tienen 3 pines. La señal TRIG y la señal ECHO están en el mismo pin. En este caso, necesitamos usar solo un pin del Arduino para ambos fines: generar un pulso al sensor y medir el pulso que emite el sensor.
Aplicaciones de sensores ultrasónicos
- Evitación de colisiones
- Detección de llenado
- Medición de nivel
- Detección de proximidad