Medir distancia con sensor ultrasónico


En este post usaremos un sensor hcsr04 para medir la distancia de un objeto y visualizar en un lcd2x16

oscar Escrito por oscar 17 April 2019 11537 0

Video

A continuación, tenemos el video del circuito.

Acerca del proyecto

En este post vamos a mostrar la distancia medida desde el sensor hc-sr04 en una pantalla lcd 2x16. Este post es la continuación y combinación de los post del sensor ultrasónico y de la conexión del lcd 2x16.

Vamos a ver el paso a paso de la conexión de estos dos módulos y del código que necesitamos para poder visualizar la distancia que se obtiene del sensor.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Arduino lcd 2x16 En este post explicamos como hacer la conexión de la lcd2x16 al arduino.
Datasheet hcsr04 Con el datasheet encontrara las características y el funcionamiento del sensor.
Arduino hcsr04 Podres ver a detalle la conexión del sensor con arduino.

Sensor Ultrasonido

Los sensores de ultrasonido o sensores ultrasónicos son detectores de proximidad que trabajan libres de roces mecánicos y que detectan objetos a distancias que van desde pocos centímetros hasta varios metros. El sensor emite un sonido y mide el tiempo que la señal tarda en regresar.

Sensor HC-SR04

El HC-SR04 es un sensor de distancias por ultrasonidos capaz de detectar objetos y calcular la distancia a la que se encuentra en un rango de 2 a 450 cm. El sensor funciona por ultrasonidos y contiene toda la electrónica encargada de hacer la medición. Su uso es tan sencillo como enviar el pulso de arranque y medir la anchura del pulso de retorno. De muy pequeño tamaño, el HC-SR04 se destaca por su bajo consumo, gran precisión y bajo precio por lo que esta reemplazando a los sensores polaroid en los robots mas recientes.

Para más información del sensor la encuentran en HC-SR04.

Dimensiones hcsr04
Leyenda

Dimensiones hcsr04

Materiales

Componente Cantidad Descripción
Arduino 1 Controlador para el sensor y LCD
Sensor hcsr04 1 Sensor de distancia
Resistencias 2 Para protección de LCD
Cables macho a macho 11 Para realizar la conexión de los componentes

Circuito

Para realizar este circuito vamos realizar las conexiones de la pantalla y del sensor, para ello veamos las siguientes tabla:

Conexión del lcd a arduino

Número Pines del LCD Descripción Conexión al Arduino
1 Vss (GND) Tierra de la pantalla N/A
2 Vdd (+5V Alimentación del LCD N/A
3 Vee Control de contraste N/A
4 RS Selector entre comandos y datos 12
5 RW Escritura y lectura de datos GND
6 EN Sincronización de lectura de datos 11
11 D4 Pin de datos 5
12 D5 Pin de datos 4
13 D6 Pin de datos 3
14 D7 Pin de datos 2
15 BL + Alimentación luz de fondo (+5V) N/A
16 BL + GND luz de fondo N/A
Pines lcd 2x16
Leyenda

Pines lcd 2x16

Conexión del hcsr04 al arduino

Arduino hcsr04
9 Trig
8 Echo
5V VCC
GND GND

Una ves visto los anteriores post seguimos con la conexión del circuito el cual es el siguiente.

Circuito medir distancia
Circuito medir distancia
Esquema circuito medir distancia
Esquema circuito medir distancia

Nota: en la imagen del circuito están los pines de conexión del hcsr04 invertidos, hacer caso a la tabla de conexión que menciono en el apartado anterior o en el esquema.

Código

En el siguiente link encontrará el repositorio al código del proyecto.

Básicamente lo que se hace es unir los códigos del hcsr04 donde obtenemos la distancia ademas de la configuración y visualización de lcd, pero les explico paso a paso:

// Paso 1
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Paso 2
int const TRIG = 9;
int const ECHO = 8;

// Paso 3
float distancia;
float tiempo;

// Paso 4
void setup(){
    Serial.begin(9600);
    lcd.begin(16, 2);

    // Paso 5
    pinMode(TRIG, OUTPUT); 
    pinMode(ECHO, INPUT);
}

void loop(){
    // Paso 6
    digitalWrite(TRIG,LOW); 
    delayMicroseconds(5);
    digitalWrite(TRIG, HIGH); 
    delayMicroseconds(10);

    // Paso 7
    tiempo = pulseIn(ECHO, HIGH); 

    // Paso 8
    distancia= tiempo / 2 / 29.1;
    
    // Paso 9
    Serial.print("Distancia ");
    Serial.print(distancia);
    Serial.print(" cm");
    Serial.println("");
    
    // Paso 10
    lcd.clear();
    lcd.print("Distancia");
    lcd.setCursor(0,1);
    lcd.print(distancia);
    delay(1000);
}
  1. Cargamos e inicializamos la pantalla lcd, para mas información del funcionamiento, en el post del lcd 2x16
  2. Creamos las variables de acceso al triger y al echo del hcsr04
  3. Creamos las variables para el calculo de la distancia
  4. En el setup inicializamos el begin para ver los logs en la consola de arduino
  5. Activación del pin como salida: para el pulso ultrasónico y activación del pin como entrada: tiempo del rebote del ultrasonido
  6. Envío del pulso ultrasónico por el pin triger
  7. Obtenemos el tiempo de rebote del pulso por el pin echo
  8. Calculamos la distancia
  9. Imprimimos los valores por la terminal serial
  10. Imprimimos los valores de distancia por la pantalla lcd

Comentario

Debe aceptar antes de enviar