El sensor HC-SR04 es un módulo que incorpora un par de transductores de ultrasonido que se utilizan de manera conjunta para determinar la distancia del sensor con un objeto colocado enfrente de este. Quizá la característica más destacada del HC-SR04 es que puede ser adquirido por una baja suma de dinero y esto mismo lo ha hecho muy popular. Afortunadamente el módulo HC-SR04 es bastante fácil de utilizar a pesar de su bajo precio y no demanda grán cantidad de trabajo ponerlo a funcionar, mucho menos si utilizamos una librería para sensores ultrasónicos.
En este tutorial explicaremos como utilizar un sensor ultrasónico HC-SR04 y arduino para la medición de distancia.
Conceptos Básicos.
Primeramente debemos armar el circuito de prueba para el sensor, el cual consiste únicamente en proveer alimentación al módulo y asignarle 2 pines de interfaz con el Arduino (echo y trigger). Este tipo de módulos para medición de distancia por ultrasonidos se divide en 2 grandes grupos: Interfaz mediante pulso de eco e interfaz serial (I2C o UART). El HC-SR04 cae dentro del primer grupo, por lo que explicaremos su funcionamiento brevemente en las siguientes lineas.
La interfaz digital se logra mediante 2 pines digitales: el pin de trigger (disparo) y echo (eco).
- El primero recibe un pulso de habilitación de parte del microcontrolador, mediante el cual se le indica al módulo que comience a realizar la medición de distancia.
- A través de un segundo pin (echo) el sensor “muestra” al microcontrolador un puso cuyo ancho es proporcional al tiempo que tarda el sonido en viajar del transductor al obstaculo y luego de vuelta al módulo.
Mediante una sencilla formula puede estimarse entonces la distancia entre el sensor y el obstáculo si se conoce el tiempo de viaje del sonido así como la velocidad de propagación de la onda sonora. La siguiente imagen muestra los pulsos recibidos y enviados por el sensor, de acuerdo a la hoja de datos elaborada por Itead Studio.
Como se puede observar, el HC-SR04 genera un pulso en el pin marcado como “echo” cuya duración es proporcional a la distancia medida por el sensor. Para obtener la distancia en centímetros, solamente debemos dividir el tiempo en microsegundos entre 58 o para obtener la distancia.
_________________________________________
Materiales Requeridos.
- Tarjeta Arduino UNO R3
- Módulo sensor ultrasónico HC-SR04
- Cables tipo dupont para conexiones
- Protoboard (opcional)
_________________________________________
Esquema
El siguiente circuito es el mínimo necesario para hacer funcionar el sensor ultrasonido HC-SR04. Puedes hacer uso del protoboard para tener mayor comodidad.
_________________________________________
Código
#include <NewPing.h>
/*Aqui se configuran los pines donde debemos conectar el sensor*/
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
/*Crear el objeto de la clase NewPing*/
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
// Esperar 1 segundo entre mediciones
delay(1000);
// Obtener medicion de tiempo de viaje del sonido y guardar en variable uS
int uS = sonar.ping_median();
// Imprimir la distancia medida a la consola serial
Serial.print("Distancia: ");
// Calcular la distancia con base en una constante
Serial.print(uS / US_ROUNDTRIP_CM);
Serial.println("cm");
}
_________________________________________
Librerias necesarias
Descargar Librería NEW PING
Contenedor de versiones
_________________________________________
Pantallas de la sesión
____________________________________________
Fuente: ASXLabASXKidsARDUINOGeekFactory