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.
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
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 usar0x3F. 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:
- Utiliza la función
sonar.ping_cm()para medir la distancia y almacenarla en la variabledistance. - Limpia la pantalla LCD e imprime el texto "Robojax.com" en la primera línea.
- Luego coloca el cursor en la segunda línea e imprime "Distance: ".
- Finalmente, mueve el cursor a la posición 10 en la segunda línea para imprimir el valor medido de
distanceseguido 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
- Lección 20/31: Uso de LCD1602 con Arduino para mostrar texto | Robojax
- Lección 20/31: Mostrando temperatura y humedad del DHT11 en la pantalla LCD
- Lección 20/31: Mostrando voltaje en LCD1602
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
This code has not been parsed yet. Please return to the admin panel to parse it.
Cosas que podrías necesitar
-
AmazonasSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazonas
-
Amazonas
-
Amazonas
-
Amazonas
Recursos y referencias
-
Documentación
-
Externo
Archivos📁
Bibliotecas de Arduino (zip)
-
Código fuente del kit de aprendizaje para autos inteligentes 3 en 1 de SunFounder
3in1-kit-main-v2.zip12.80 MB
Manual del Usuario
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB