Proyecto 33 – Sensor de ultrasonido HC-SR04 con NewPing

Como en el que el proyecto anterior utilizaremos nuestro arduino con el sensor de ultrasonido HC-SR04 con NewPing, una librería que trae todos los cálculos para hacer nuestras mediciones, lo que hace que el código sea más simple. Al igual que el proyecto anterior nos permite medir distancias entre los 2 cm y los 400 cm (4m), muy útil en robótica para detectar obstáculos, ya que utiliza señales ultrasónicas para detectar un objeto frente a él y nos puede determinar con algo de precisión la distancia a la que se encuentra.

Al igual que los últimos proyectos este es otro de esos proyectos muy fáciles de implementar y de código muy sencillo.

Módulo sensor de distancia HC-SR04

Módulo sensor de ultrasonido HC-SR04
Módulo sensor de ultrasonido HC-SR04

El módulo HC-SR04 nos permite medir distancias sin necesidad de contacto, con una precisión de unos 3 mm. Este módulo viene con los transductores tanto de transmisión como de recepción (altavoz y micrófono), emitiendo una señal de 40KHZ.

Este sensor emite señales de alta frecuencia, las cuales llegan al objeto y son reflejadas por el mismo y regresa de nuevo al sensor, permitiéndonos calcular la distancia al objeto que se interpone en su camino .

Su funcionamiento es sencillo, el pin Trigger se comunica con el transductor izquierdo (T) para que envíe pulsos de ultrasonido, mientras que el pin Echo está comunicado al transductor de la derecha (R), el cual se encarga de recibir el eco del ultrasonido enviado previamente.

Duración mínima del pulso de disparo (TTL) 10 μS
Duración del pulso de eco de salida (TTL) 100-25000 μS
Tiempo mínimo de espera entre mediciones 20 mS

Este sensor es utilizado con frecuencia para la detección de obstáculos.

Especificaciones:

  • Voltaje de operación: 5V
  • Corriente de trabajo: 15mA
  • Frecuencia de trabajo 40KHz
  • Ángulo de detección: 15°
  • Rango de detección: 2 a 400cm

Componentes

  • Arduino UNO o placa compatible
  • Protoboard o placa de pruebas
  • Módulo sensor de de distancia HC-SR04
  • Cables o Jumpers
Diagrama de conexiones del módulo HC-SR04 con el Arduino
Diagrama de conexiones del módulo HC-SR04 con el Arduino

Las conexiones de este proyecto son muy sencillas, lo primero que hacemos es hacer las conexiones de alimentación del sensor, el GND del sensor al GND del Arduino y el VCC del sensor, a los 5 voltios del Arduino. Luego procedemos a conectar el pin Trig del sensor, al pin puerto 12 del Arduino y el pin Echo del sensor, al pin 11 del Arduino.

Al utilizar el sensor de ultrasonido HC-SR04 con NewPing, tendremos menos código que digitar, ya que esta librería hacer todo por nosotros.

Instalando la librería NewPing

NewPing es una librería para el IDE de arduino que facilita el trabajo con sensores ultrasónicos, creada por Tim Eckel. Esta librería ya contiene toda la lógica para realizar los cálculos de distancia con nuestro sensor HC-SR04, lo cual simplifica nuestro código.

La instalación de la biblioteca, es bastante simple, lo primero es ir al menú Programa> Incluir Librería> Administrar bibliotecas, aquí hay que esperar un poco a que se actualice el indice librerías o bibliotecas instaladas.

Administrar bibliotecas IDE Arduino

Una vez termine de actualizar vamos al cuadro de búsqueda y digitamos «newping». Nos pueden aparecer varios resultados, pero seleccionamos las que se llama «NewPing by Tim Eckel» y le damos instalar

Búsqueda newping  IDE Arduino HC-SR04

Código

En esta ocasión utilizaremos el proyecto de ejemplo que traer la misma librería NewPing:

#include <NewPing.h>

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() 
{
  Serial.begin(115200);
}

void loop() 
{
  delay(50);
  Serial.print("Distancia: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
}

El código anterior es bastante sencillo de entender, ahora vamos a revisar el código paso a paso. Primero vamos a ver las librería que utilizamos y la declaración de las variables.

#include <NewPing.h>

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

Lo primero que vemos es la línea del unclude, donde incluimos la librería NewPing.h al proyecto que estamos realizando. Anteriormente habíamos visto que el #define es como la declaración de una constante, entonces podemos ver que declaramos dos constantes, echoPin a la cual le asignamos el 11 y trigPin a la que le asignamos 12, que serían los pines en los cuales conectamos el triger y el echo del módulo. En la siguiente línea veremos otro define el cual llamaremos MAX_DISTANCE y le asignaremos 200, esta constante la utilizaremos más adelante para que sea el rango máximo de media, aunque el sensor pueda medir los 400 cm.

Por último veremos la declaración de un objeto del tipo NewPing y que llamarenos sonar, al cual le entregaremos 3 parámetros, el pin del triger, el pin del echo y la distancia máxima.

En la función setup:

Serial.begin(115200);

Como hemos visto anteriormente todo lo que está en el setup se ejecuta solo una vez al prender o reiniciar el Arduino. Lo primero que vemos es la inicialización del puerto serial y lo hacemos con a una velocidad de 115200 baudios, que sería la velocidad de comunicación entre el Arduino y la consola serie del IDE del Arduino y por donde veríamos el resultado de las mediciones..

Y en la función loop:

delay(50);
Serial.print("Distancia: ");
Serial.print(sonar.ping_cm());
Serial.println("cm");

Comenzamos con un delay o pausa de 50 milisegundos (lo mínimo que se puede poner es 29 milisegundos entre medidas), en la siguiente línea solo imprimimos por serial el texto «Distancia: «, en la siguiente línea vemos como imprimimos por serial el resultado que viene al invocar el método sonar.ping_cm(), que es esta función o método de la librería NewPing que hace todo el cálculo de la distancia, si el resultado es 0 es porque está fuera del rango de medición y por último imprimimos por serial la palabra «cm».

Como podemos apreciar en este ejercicio la librería NewPing hace todo el trabajo duro en cuanto a la programación de nuestro código, si miramos bien al final solo imprimimos datos en el monitor serial, pero no realizamos ningún calculo matemático para lograr nuestro resultado.

Resumen

En este proyecto usamos nuestro Arduino el sensor de ultrasonido HC-SR04 con NewPing para mostrar la distancia en cm del objeto que se encuentre frente a él y lo visualizaremos a través del monitor de serie.


Deja un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.