Sensor ultrasónico: medición de distancias

Prácticas con DASA

Título de la práctica:Sensor ultrasónico: medición de distancias
Objetivo:El alumno usará un sensor ultrasónico y una tarjeta Arduino para medir distancias.
Tiempo estimado:50 minutos
Nivel de dificultad:Principiante

Introducción

En el campo de la robótica es común encontrar robots que requieren medir distancias para realizar una determinada acción. El sensor ultrasónico es un componente que podemos utilizar para ejecutar esta tarea. Estos sensores funcionan como un sistema sonar.

Figura 1 Robot detector de obstáculos. Simonwilmot, CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0, via Wikimedia Commons

En esta práctica vas a conocer las características y funcionamiento básico del sensor ultrasónico HC-SR04 y aprenderás el procedimiento para medir la distancia de un objeto al sensor con una tarjeta Arduino UNO.

Materiales

Programas

Arduino IDE. Disponible en: https://www.arduino.cc/en/software

Desarrollo

Conexión del circuito electrónico

Vamos a armar el circuito electrónico. Ubica el espacio de conexión del sensor HC-SR04 en tu DASA. Conecta el sensor como se muestra en la Figura 2. 

dasa-ultrasonico
Figura 2 Conexión del sensor ultrasónico al DASA

Conexión del DASA a la tarjeta Arduino

Conecta el DASA a la tarjeta Arduino UNO como se muestra en la Figura 3. Asegúrate que todos los pines se introduzcan completamente  en los conectores de  la tarjeta Arduino correspondientes.

Figura 3 Conexión del DASA a la tarjeta Arduino UNO

Nota: si no tienes un DASA, puedes construir el circuito electrónico mostrado en la Figura 4, o bien, utilizar la herramienta de simulación de circuitos electrónicos Arduino de Tinkercad.

circuito-sensor-ultrasonico
Figura 4 Diagrama de conexiones del sensor ultrasónico a la tarjeta Arduino UNO

Programación del circuito electrónico

El siguiente código de Arduino te permitirá calcular la distancia de un objeto al sensor y mostrarla en el monitor serial de Arduino. Es importante que si no estás familiarizado con el monitor serial, realices primero la práctica El monitor serial de Arduino del Manual de programación de Arduino.

/* Sensor ultrasónico HC-SR04
* Programa que utiliza un sensor ultrasónico para medir distancias
* y muestra la distancia en el monitor serial
* NOTA: El canal trigger está conectado al pin 6 y el canal echo al pin 7
* UNAM 2022
*/

// Declaración de la constante TRIG que almacena el pin al que está conectado el canal TRIGGER del sensor
const int TRIG = 6;
// Declaración de la constante ECHO que almacena el pin al que está conectado el canal ECHO del sensor
const int ECHO = 7;
// Declaración de variables
long distancia = 0;
long tiempo = 0;

void setup() {
Serial.begin(9600);
// Activación del pin TRIG como salida
pinMode(TRIG,OUTPUT);
// Activación del pin ECHO como entrada
pinMode(ECHO,INPUT);
// Garantizar que la señal trigger inicie en bajo
digitalWrite(TRIG,LOW);
}

void loop() {
digitalWrite(TRIG,HIGH);
delayMicroseconds(10); // Se envía un pulso de 10 microsegundos
digitalWrite(TRIG,LOW); // Activación de la señal ultrasónica
/* pulseIn es la función que mide la longitud del pulso entrante.
Mide el tiempo que transcurre entre el envío del pulso ultrasónico del pin TRIG
y la recepción de la señal de rebote por el pin ECHO
*/
tiempo = pulseIn(ECHO,HIGH);
// Cálculo de la distancia (número entero)
distancia = int(0.01716 * tiempo);
/* Impresión de la distancia en el monitor serial*/
Serial.print("Distancia ");
Serial.print(distancia);
Serial.print(" cm");
Serial.println();
// Pausa de 100 milisegundos
delay(100);
}

Probablemente cuando analizaste el programa encontraste un código misterioso para calcular la distancia. Para resolver este misterio te invitamos a ver el siguiente video.

Video El código misterioso – Sensor ultrasónico

Ahora te estarás preguntando de dónde sale el valor  de 0.01716 utilizado en la fórmula para calcular la distancia. Revisa la siguiente presentación para que comprendas cómo se obtiene.

Captura, compila y ejecuta tu programa por medio de siguientes acciones:

  1. Abre el IDE de Arduino.
  2. Crea un nuevo sketch.
  3. Captura las instrucciones del programa.
  4. Guarda tu programa.
  5. Compila tu programa. En caso necesario, depúralo hasta que no tenga ningún error.
  6. Conecta la tarjeta Arduino a tu computadora.
  7. Selecciona el puerto serial (COM) de la computadora asociado a la tarjeta.
  8. Sube el programa a la memoria de la tarjeta Arduino UNO.
  9. Ejecuta tu programa.

El resultado de la ejecución del programa deberá ser similar a la que se muestra en la Figura 5.

Figura 5 Resultado de la ejecución del programa sensor ultrasónico

Realiza pruebas de medición con tu circuito electrónico para determinar cuál es la distancia mínima y máxima que se puede medir, cuál es el ángulo máximo en el que se detecta el objeto y si el material con que está construido el objeto influye en la detección del mismo.

Resultados

  • Indica cuál es la variación entre la distancia detectada por el sensor y la distancia real.
  • Indica cuál es la distancia máxima a la que el sensor puede detectar el objeto.
  • Indica cuál es el ángulo máximo en el que el sensor puede detectar un objeto.
  • Indica si el tipo de material con el que está fabricado el objeto influye en su detección.

Conclusiones

La fórmula para calcular una distancia con el sensor ultrasónico es:

distancia= int(0.01716*tiempo);

Responde las siguientes preguntas:

  1. ¿Qué aprendiste con esta práctica?
  2. Realiza el algoritmo del procedimiento para calcular una distancia con el sensor ultrasónico y una tarjeta Arduino.
  3. ¿Qué prototipos podrías crear con el sensor ultrasónico?
  4. Menciona algunos ejemplos de procesos científicos e industriales en donde se haga uso de un sensor ultrasónico.

Retos Arduino

Para que practiques tus habilidades de programación en Arduino, te invitamos a que realices el siguiente reto:

  1. Modifica el programa para que en lugar de mostrar la distancia en el monitor serial de Arduino se muestre en un display LCD.
  2. Programa tu DASA para generar la alarma de proximidad propuesta en el video de esta práctica.

Referencias

Arduino. (2021). Language Reference. https://www.arduino.cc/reference/en/

Bañuelos, M., Pacheco, M. y Villegas, R. (2022). Dispositivo Automatizado de Sensores Arduino (DASA). Manual de usuario.