.. note::
¡Hola, bienvenido a la Comunidad de Aficionados a Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
**¿Por qué unirse?**
- **Soporte de expertos**: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.
- **Aprender y compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades.
- **Vistas previas exclusivas**: Obtén acceso anticipado a anuncios de nuevos productos y avances.
- **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
- **Promociones festivas y sorteos**: Participa en sorteos y promociones de fiestas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy!
.. _ar_lcd1602:
2.6 Mostrar Caracteres
===============================
Ahora, exploraremos el fascinante mundo de la visualización de caracteres usando el módulo I2C LCD1602.
A través de este proyecto, aprenderemos cómo inicializar el módulo LCD, establecer los parámetros de visualización deseados y enviar datos de caracteres para ser mostrados en la pantalla. Podemos exhibir mensajes personalizados, mostrar lecturas de sensores o crear menús interactivos. ¡Las posibilidades son infinitas!
Dominando el arte de la visualización de caracteres en el I2C LCD1602, desbloquearemos nuevas vías para la comunicación y la visualización de información en nuestros proyectos. Sumergámonos en este emocionante viaje y demos vida a nuestros caracteres en la pantalla LCD.
**Componentes Necesarios**
Para este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nombre
- ELEMENTOS EN ESTE KIT
- ENLACE
* - Kit de Inicio ESP32
- 320+
- |link_esp32_starter_kit|
También puedes comprarlos por separado en los enlaces a continuación.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUCCIÓN DE COMPONENTES
- ENLACE DE COMPRA
* - :ref:`cpn_esp32_wroom_32e`
- |link_esp32_wroom_32e_buy|
* - :ref:`cpn_esp32_camera_extension`
- |link_esp32_extension_board|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_lcd`
- |link_i2clcd1602_buy|
**Pines Disponibles**
Aquí hay una lista de pines disponibles en la placa ESP32 para este proyecto.
.. list-table::
:widths: 5 15
:header-rows: 1
* - Pines Disponibles
- Descripción de Uso
* - IO21
- SDA
* - IO22
- SCL
**Esquemático**
.. image:: ../../img/circuit/circuit_2.6_lcd.png
**Cableado**
.. image:: ../../img/wiring/2.6_i2clcd1602_bb.png
:width: 800
**Código**
.. note::
* Abre el archivo ``2.6_lcd1602.ino`` bajo la ruta de ``esp32-starter-kit-main\c\codes\2.6_lcd1602``.
* Después de seleccionar la placa (ESP32 Dev Module) y el puerto apropiado, haz clic en el botón **Subir**.
* :ref:`unknown_com_port`
* La biblioteca ``LiquidCrystal I2C`` se usa aquí, puedes instalarla desde el **Administrador de Bibliotecas**.
.. image:: img/lcd_lib.png
.. raw:: html
Cuando este programa se carga, el I2C LCD1602 mostrará el mensaje de bienvenida, "¡Hola, Sunfounder!", durante 3 segundos. Después de eso, la pantalla mostrará una etiqueta "CUENTA:" y el valor de cuenta, que se incrementa cada segundo.
.. note::
Si el código y el cableado son correctos, pero el LCD todavía no muestra ningún contenido, puedes ajustar el potenciómetro en la parte trasera para aumentar el contraste.
**¿Cómo funciona?**
Al llamar a la biblioteca ``LiquidCrystal_I2C.h``, puedes manejar fácilmente el LCD.
.. code-block:: arduino
#include
Funciones de la Biblioteca:
* Crea una nueva instancia de la clase ``LiquidCrystal_I2C`` que representa un LCD particular adjunto a tu placa Arduino.
.. code-block:: arduino
LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows)
* ``lcd_AddR``: La dirección del LCD por defecto es 0x27.
* ``lcd_cols``: El LCD1602 tiene 16 columnas.
* ``lcd_rows``: El LCD1602 tiene 2 filas.
* Inicializa el lcd.
.. code-block:: arduino
void init()
* Enciende la luz de fondo (opcional).
.. code-block:: arduino
void backlight()
* Apaga la luz de fondo (opcional) rápidamente.
.. code-block:: arduino
void nobacklight()
* Enciende la pantalla LCD.
.. code-block:: arduino
void display()
* Apaga la pantalla LCD rápidamente.
.. code-block:: arduino
void nodisplay()
* Limpia la pantalla, establece la posición del cursor en cero.
.. code-block:: arduino
void clear()
* Establece la posición del cursor en col,row.
.. code-block:: arduino
void setCursor(uint8_t col,uint8_t row)
* Imprime texto en el LCD.
.. code-block:: arduino
void print(data,BASE)
* ``data``: Los datos a imprimir (char, byte, int, long, o string).
* ``BASE (opcional)``: La base en la que imprimir números.
* ``BIN`` para binario (base 2)
* ``DEC`` para decimal (base 10)
* ``OCT`` para octal (base 8)
* ``HEX`` para hexadecimal (base 16).