Código de búsqueda

Lección 20/31: Mostrando la distancia ultrasónica en LCD1602

Lección 20/31: Mostrando la distancia ultrasónica en LCD1602

Este proyecto demuestra cómo combinar un sensor de distancia ultrasónico HC-SR04 con una pantalla LCD1602 habilitada para I2C para crear un sistema de medición de distancia en tiempo real. Al final de esta guía, tendrás un dispositivo funcional que mide y muestra continuamente la distancia a un objeto en centímetros. Esta es una habilidad fundamental en la electrónica con Arduino, ya que combina la entrada de sensores con la salida visual.

Sunfounder 20-LCD1602-ultrasonic

Esta configuración práctica se puede utilizar en una variedad de aplicaciones del mundo real, incluyendo:

  • Crear un asistente de estacionamiento inteligente que te ayude a medir la distancia a una pared u otro vehículo.
  • Construir un monitor de nivel de líquido simple para un tanque midiendo la distancia desde la parte superior hasta la superficie.
  • Desarrollar un dispensador de desinfectante de manos automático o un bote de basura sin contacto que se abra cuando un objeto esté cerca.
  • Construir una alarma de seguridad básica que se active cuando alguien entra en una zona específica.

Hardware y Componentes

Para construir este proyecto, necesitarás los siguientes componentes:

  • Placa Arduino (por ejemplo, Uno)
  • Pantalla LCD1602 con módulo de interfaz I2C
  • Sensor de distancia ultrasónico HC-SR04
  • Cables de puente
  • Protoboard (opcional, para conexiones más fáciles)

Entendiendo el LCD1602 y el I2C

El LCD1602 es una pantalla popular capaz de mostrar 16 caracteres por línea en dos líneas. El módulo "I2C" en su parte posterior es una ventaja significativa porque reduce el número de pines necesarios para controlar la pantalla de 6 o más a solo 2 para comunicación (SDA y SCL) y 2 para alimentación (VCC y GND). Esta simplificación hace que el cableado sea mucho más limpio y libera valiosos pines digitales en tu Arduino para otros sensores, como el ultrasónico utilizado en este proyecto. (en el video en 01:30)

El módulo I2C también cuenta con un pequeño potenciómetro para ajustar el contraste de la pantalla. Si enciendes la pantalla y no ves nada, intenta girar este tornillo hasta que el texto sea visible. (en el video en 02:47)

Guía de Cableado

LCD1602_wiring_ultrasonic_bb

Conectar los componentes es sencillo. El módulo I2C del LCD tiene cuatro pines que deben conectarse al Arduino. El sensor ultrasónico también tiene cuatro pines.

Aquí tienes un desglose de las conexiones:

Módulo I2C del LCD1602 al Arduino:

  • GND al GND del Arduino
  • VCC al 5V del Arduino
  • SDA al A4 del Arduino
  • SCL al A5 del Arduino

Sensor ultrasónico HC-SR04 al Arduino:

  • VCC al 5V del Arduino
  • Trig al pin digital 12 del Arduino
  • Echo al pin digital 11 del Arduino
  • GND al GND del Arduino

El diagrama de cableado para este proyecto se referencia en el video.

Instalación de las Bibliotecas Requeridas

Este proyecto depende de dos bibliotecas cruciales. La primera, LiquidCrystal_I2C, es necesaria para controlar el LCD y no está incluida con el IDE de Arduino por defecto. Puedes descargarla desde el enlace proporcionado en la descripción del video o desde el sitio web de Robojax. (en el video en 06:16)

La segunda biblioteca, NewPing, se utiliza para interactuar con el sensor ultrasónico. Simplifica el proceso de enviar un ping y leer el tiempo del eco. Ambas bibliotecas se pueden instalar a través del Administrador de Bibliotecas del IDE de Arduino yendo a Sketch -> Include Library -> Manage Libraries y buscando sus nombres.

Explicación del Código

Este sketch combina la funcionalidad del LCD y el sensor ultrasónico. El código está estructurado para ser fácilmente configurable para tu configuración específica.

En la parte superior del código, encontrarás las variables clave que puedes necesitar ajustar:

// Establece la dirección del LCD a 0x27 para una pantalla de 16 caracteres y 2 líneas
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Pin de Arduino conectado al pin de disparo del sensor ultrasónico.
#define ECHO_PIN     11  // Pin de Arduino conectado al pin de eco del sensor ultrasónico.
#define MAX_DISTANCE 190 // Distancia máxima que queremos medir (en centímetros).
  • Dirección del LCD (0x27): Esta es la dirección I2C de tu módulo LCD. La mayoría de los módulos usan 0x27, pero algunos pueden usar 0x3F. Si tu pantalla no muestra nada, es posible que necesites ejecutar un sketch de escaneo I2C para encontrar la dirección correcta y actualizar este valor. (en el video en 08:11)
  • TRIGGER_PIN y ECHO_PIN: Estos definen los pines digitales del Arduino conectados a los pines Trig y Echo del sensor ultrasónico. Si usas pines diferentes, cambia estas definiciones.
  • MAX_DISTANCE: Esto establece la distancia máxima en centímetros que el sensor medirá. El HC-SR04 puede medir hasta 400-500 cm, pero establecer un valor más bajo puede mejorar la precisión y confiabilidad de las lecturas, especialmente para distancias más cortas.

En la función loop(), el código realiza los siguientes pasos:

  1. Utiliza la función sonar.ping_cm() para medir la distancia y almacenarla en la variable distance.
  2. Limpia la pantalla LCD e imprime el texto "Robojax.com" en la primera línea.
  3. Luego coloca el cursor en la segunda línea e imprime "Distance: ".
  4. Finalmente, mueve el cursor a la posición 10 en la segunda línea para imprimir el valor medido de distance seguido de "cm".

El delay(200) al final del bucle controla la frecuencia con la que el sensor toma una nueva lectura y actualiza la pantalla.

Demostración del código

Una vez que el código se cargue en tu Arduino, la pantalla LCD se encenderá y comenzará a mostrar la distancia. Puedes probar la configuración moviendo tu mano o un objeto más cerca y más lejos del sensor ultrasónico. El número en la pantalla debería actualizarse en tiempo real, mostrando la distancia en centímetros. (en el video en 38:07)

Proyectos relacionados de este video

Capítulos

  • [00:00] Introducción al LCD1602 y Resumen del Proyecto
  • [01:30] Hardware del LCD1602 y Módulo I2C Explicados
  • [03:14] Distribución de pines del LCD y Configuración de la Dirección I2C
  • [05:28] Diagrama de conexiones para el LCD1602
  • [06:16] Instalación de la biblioteca LCD requerida
  • [07:24] Código básico para imprimir texto en el LCD
  • [08:11] Encontrando la dirección I2C de tu LCD
  • [11:10] Ejemplos de LCD: Cursor parpadeante y caracteres personalizados
  • [18:51] Ejemplo de LCD: Pantalla serial y texto desplazable
  • [24:36] Mostrando temperatura y humedad del DHT11 en el LCD
  • [33:00] Mostrando voltaje de un potenciómetro en el LCD
  • [35:56] Combinando el código del sensor ultrasónico con el LCD
  • [38:07] Demostración de la pantalla de distancia ultrasónica

Imágenes

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Idioma: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Archivos📁

Bibliotecas de Arduino (zip)

Manual del Usuario