Type something to search...
Pantallas LCD

Pantallas LCD

Introducción a las Pantallas LCD

Las pantallas LCD (Liquid Crystal Display) son dispositivos electrónicos utilizados para mostrar información de manera clara y eficiente. Estas pantallas son muy comunes en proyectos de microcontroladores porque permiten mostrar mensajes, valores de sensores y otros datos de forma visual. Las pantallas LCD I2C, como la utilizada en este proyecto, simplifican la conexión al usar solo dos cables para comunicación: SDA (datos) y SCL (reloj).

La ventaja de usar pantallas LCD I2C es que requieren menos pines en el microcontrolador, lo que deja más espacio para conectar otros dispositivos. Además, con librerías como LiquidCrystal_I2C.h, podemos programar estas pantallas de manera sencilla.


Explicación del Código

A continuación, explicamos cada sección del código para entender su funcionamiento y cómo interactúa con la pantalla LCD.

1. Importación de Librerías

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
  • Wire.h: Maneja la comunicación I2C entre el microcontrolador y la pantalla LCD.
  • LiquidCrystal_I2C.h: Proporciona métodos para controlar la pantalla LCD.

2. Configuración de la Pantalla

LiquidCrystal_I2C lcd(0x20,16,2);

Aquí se crea un objeto lcd con la dirección I2C de la pantalla (0x20) y las dimensiones de la pantalla (16 columnas y 2 filas).

3. Configuración Inicial (setup)

void setup() {
  lcd.init();       // Inicializa la pantalla LCD
  lcd.backlight();  // Enciende la luz de fondo
  lcd.print("Hola!");  // Muestra "Hola!" en la pantalla
  delay(2000);      // Espera 2 segundos
  lcd.clear();      // Limpia la pantalla
}
  • Se inicializa la pantalla y se enciende la luz de fondo.
  • Se muestra el mensaje “Hola!” durante 2 segundos y luego se limpia.

4. Bucle Principal (loop)

void loop() {
  barridoTexto("Mi nombre es Juanito");
  delay(2000);

  barridoTexto("Aprendamos a programar microcontroladores!");
  delay(2000);
}
  • La función barridoTexto permite mostrar mensajes largos en la pantalla desplazándolos.
  • Cada mensaje se muestra por 2 segundos antes de cambiar al siguiente.

5. Función Personalizada: barridoTexto

void barridoTexto(String mensaje) {
  lcd.clear();
  int longitud = mensaje.length();

  for (int i = 0; i < longitud; i++) {
    lcd.clear();
    lcd.print(mensaje.substring(i, i + 16)); 
    delay(250);
  }
}

Esta función permite mostrar textos largos en una pantalla de 16 caracteres realizando un desplazamiento o barrido:

  • Se calcula la longitud del mensaje.
  • Se muestran subcadenas de 16 caracteres, desplazándolas de forma continua.

Retos Sencillos

  • Reto 1: Mensaje Personalizado

Cambia el mensaje “Mi nombre es Juanito” por tu propio nombre o un mensaje divertido. Observa cómo se muestra en la pantalla.

  • Reto 2: Mensajes Alternantes

Programa la pantalla para alternar entre dos mensajes cada 3 segundos. Ejemplo: “¡Hola!” y “¡Bienvenido!”.

Retos Adicionales

  1. Reto: Reloj Digital

    • Programa la pantalla para mostrar un reloj que cuente los segundos desde que el programa inicia.
    • Usa una variable para llevar el conteo de los segundos y actualiza el valor en la pantalla en tiempo real.
  2. Reto: Texto Alternante

    • Crea un programa que permita alternar entre diferentes mensajes en la pantalla al presionar un botón.
    • Usa un pulsador conectado al microcontrolador para cambiar entre mensajes como “¡Hola!”, “Aprendamos Arduino”, y “¡Sigue explorando!”.

Recursos

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Crear el objeto lcd: dirección 0x3F y 16 columnas x 2 filas
LiquidCrystal_I2C lcd(0x20,16,2); 

void setup() {
  // Inicializar el LCD
  lcd.init();
  
  // Encender la luz de fondo.
  lcd.backlight();
  
  // Escribir el mensaje inicial.
  lcd.print("Hola!");
  delay(2000);
  lcd.clear();
}

void loop() {
  // Mensaje con barrido de texto
  barridoTexto("Mi nombre es Juanito");
  delay(2000);

  // Mostrar un segundo mensaje
  barridoTexto("Aprendamos a programar microcontroladores!");
  delay(2000);

 
}

// Función para barrido de texto
void barridoTexto(String mensaje) {
  lcd.clear();
  int longitud = mensaje.length();

  for (int i = 0; i < longitud; i++) {
    lcd.clear();
    // Subcadena que se muestra según la posición
    lcd.print(mensaje.substring(i, i + 16)); 
    delay(250);
  }
}

Publicaciones relacionadas

Encender y apagar led usando processing

Encender y apagar led usando processing

Encender y Apagar Luz LED Usando Processing Índice¿Qué es Processing? Temas importantes del proyecto Especificación detallada de las conexiones Especificaciones del proyecto Preg

read more
Multímetro

Multímetro

Introducción En esta clase, aprenderás sobre componentes electrónicos básicos como resistencias, potenciómetros y el uso de un multímetro para medir voltajes. También exploraremos cómo estos concep

read more
Semáforo sencillo

Semáforo sencillo

// C++ code //// Pines de los LEDs del semáforo sencillo const int LED_VERDE = 2; const int LED_AMARILLO = 3; const int LED_ROJO = 4;void setup() { // Configuración de los pines OUTPUT

read more
Web climatológica con hora

Web climatológica con hora

ÍndiceÍndice ¿Qué es una página web? Ejemplos de páginas web: [¿Cómo se construye una página web?](#cómo-se-construye-u

read more
Reloj digital LCD

Reloj digital LCD

Reloj digital LCD Introducción En este tutorial, vamos a crear un reloj digital utilizando un display LCD y un microcontrolador

read more
Semáforos Coordinados

Semáforos Coordinados

Semáforos coordinados Introducción En este proyecto, vamos a crear un sistema de semáforos coordinados utilizando Arduino.

read more
Markdown Style Guide

Markdown Style Guide

Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro. Headings The following HTML <h1>—<h6> elements represent six levels of section headings

read more
Personalizar caracteres en LCD

Personalizar caracteres en LCD

ÍndiceExplicación del Código Componentes Clave del Código Librería LiquidCrystal_I2C [In

read more
Semáforo Doble

Semáforo Doble

Descripción del código Este programa controla el funcionamiento de dos semáforos simulados utilizando un Arduino. Cada semáforo cuenta con tres luces LED: verde, amarillo y rojo. El programa altern

read more
Galería Web

Galería Web

Introducción Este proyecto está diseñado para comprender las bases del desarrollo web, comenzando con HTML y CSS básicos y progresando a JavaScript interactivo. Se divide en **cuatro etapas evoluti

read more
Controlador L298N DC Motor para Arduino

Controlador L298N DC Motor para Arduino

Introduccion Si bien eventualmente necesitarás aprender a controlar motores de CC para construir tu propio robot, probablemente necesitarás algo un poco más fácil para comenzar, y ahí es donde entr

read more
Componentes HTML

Componentes HTML

import YouTubeEmbed from '../../layouts/components/YouTubeEmbed.astro'; Componentes HTML y Estilos CSS En este blog explicativo se muestran los componentes principales de HTML y estilos CSS para

read more
Portafolio web

Portafolio web

Proyecto: Página Personal o Portafolio Web Objetivo Crear una página web personal en la que se muestre:Una cabecera con tu nombre y un menú de navegación. Una sección "Sobre Mí" co

read more
Juego de adivinar el número

Juego de adivinar el número

Proyecto: Juego de Adivinar el Número Objetivo Crear un juego interactivo en el que el usuario debe adivinar un número aleatorio entre 1 y 100. El juego brindará retroalimentación indicando si

read more
Introducción a Javascript

Introducción a Javascript

Test Código<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Introducción a JavaScript</title> <style> /* E

read more
Examen Práctico: Mi Página Personal

Examen Práctico: Mi Página Personal

Examen Práctico: Objetivo Crear una página web personal con diseño moderno en la que se muestre:Una cabecera fija con tu nombre y un menú de navegación interactivo. **Una sección "Sob

read more
Proyectos

Proyectos

Planificación de 12 Semanas para Proyectos Los proyectos serán libres y sencillos, pero deberán abordar un problema escolar o de la comunidad, utilizando al menos dos de las tecnologías vistas en c

read more
Hosting y Alojamiento web

Hosting y Alojamiento web

Hosting, Dominios, Almacenamiento y Bases de Datos 🌐 🎯 ObjetivosEntender qué es un dominio y un hosting Conocer el papel del almacenamiento web Descubrir para qué sirven l

read more
Evaluación Parcial

Evaluación Parcial

Evaluación del Avance del ProyectoObjetivo General de la Evaluación:Verificar que los equipos hayan cumplido con al menos el 70% del desarrollo funcional del proyecto, incluyendo inte

read more
Bases para la Elaboración del Reporte Breve del Proyecto

Bases para la Elaboración del Reporte Breve del Proyecto

📝 Bases para la Elaboración del Reporte Breve del ProyectoFormato: Documento Word (máximo 4 páginas)Entrega: En formato digital (PDF), cargar en el apartado de Archivos.

read more
Mascota virtual

Mascota virtual

🐾 Proyecto: Mascota Virtual en Escritorio con Python Este proyecto te guiará paso a paso para crear una mascota virtual que se mueva por tu pantalla de Windows y muestre mensajes motivadores c

read more
Mascota virtual

Mascota virtual

🐾 Proyecto: Mascota Virtual en Escritorio con Python Este proyecto te guiará paso a paso para crear una mascota virtual que se mueva por tu pantalla de Windows y muestre mensajes motivadores c

read more