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
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
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.
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);
}
- Cargamos e inicializamos la pantalla lcd, para mas información del funcionamiento, en el post del lcd 2x16
- Creamos las variables de acceso al triger y al echo del hcsr04
- Creamos las variables para el calculo de la distancia
- En el setup inicializamos el begin para ver los logs en la consola de arduino
- Activación del pin como salida: para el pulso ultrasónico y activación del pin como entrada: tiempo del rebote del ultrasonido
- Envío del pulso ultrasónico por el pin triger
- Obtenemos el tiempo de rebote del pulso por el pin echo
- Calculamos la distancia
- Imprimimos los valores por la terminal serial
- Imprimimos los valores de distancia por la pantalla lcd