.. note:: ¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 con otros entusiastas. **¿Por qué unirte?** - **Soporte Experto**: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprende y Comparte**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Preestrenos Exclusivos**: Accede anticipadamente a anuncios de nuevos productos y adelantos. - **Descuentos Especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes. - **Promociones y Sorteos Festivos**: Participa en sorteos y promociones de temporada. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo! .. _1.1.7_c_pi5: 1.1.7 LCD1602 I2C ======================== Introducción -------------------- LCD1602 es una pantalla de cristal líquido tipo carácter, que puede mostrar 32 caracteres (16*2) al mismo tiempo. Componentes Necesarios --------------------------------- En este proyecto, necesitamos los siguientes componentes. .. image:: ../img/list_i2c_lcd.png Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ELEMENTOS EN ESTE KIT - ENLACE * - Kit Raphael - 337 - |link_Raphael_kit| También puedes comprarlos por separado en los enlaces a continuación. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN DEL COMPONENTE - ENLACE DE COMPRA * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_i2c_lcd` - |link_i2clcd1602_buy| Diagrama Esquemático --------------------- ============== ======== Nombre T-Board físico SDA1 Pin 3 SCL1 Pin 5 ============== ======== .. image:: ../img/schematic_i2c_lcd.png Procedimientos Experimentales ---------------------------------- **Paso 1:** Construir el circuito. .. image:: ../img/image96.png **Paso 2**: Configurar I2C (ver :ref:`i2c_config`. Si ya has configurado I2C, omite este paso.) **Paso 3:** Cambiar de directorio. .. raw:: html .. code-block:: shell cd ~/raphael-kit/c/1.1.7/ **Paso 4:** Compilar. .. raw:: html .. code-block:: shell gcc 1.1.7_Lcd1602.c -lwiringPi **Paso 5:** Ejecutar. .. raw:: html .. code-block:: shell sudo ./a.out Después de ejecutar el código, podrás ver ``Greetings!, From SunFounder`` en la pantalla LCD. .. note:: * Si aparece el error ``wiringPi.h: No such file or directory``, consulta :ref:`install_wiringpi_pi5`. * Si aparece el error ``Unable to open I2C device: No such file or directory``, necesitas consultar :ref:`i2c_config` para habilitar I2C y verificar si el cableado es correcto. * Si el código y el cableado están correctos, pero la pantalla LCD aún no muestra contenido, puedes girar el potenciómetro en la parte trasera para aumentar el contraste. **Código** * `1.1.7_Lcd1602.c `_ **Explicación del Código** .. code-block:: c void write_word(int data){ /* ... */ } void send_command(int comm){ /* ... */ } void send_data(int data){ /* ... */ } void init(){ /* ... */ } void clear(){ /* ... */ } void write(int x, int y, char data[]){ /* ... */ } Estas funciones se utilizan para controlar el código fuente abierto del LCD1602 I2C. Nos permiten usar fácilmente el LCD1602 I2C. Entre estas funciones, ``init()`` se usa para la inicialización, ``clear()`` se usa para limpiar la pantalla, ``write()`` se usa para escribir lo que se muestra, y otras funciones apoyan las funciones anteriores. .. code-block:: c fd = wiringPiI2CSetup(LCDAddr); Esta función inicializa el sistema I2C con el símbolo del dispositivo especificado. El prototipo de la función: .. code-block:: c int wiringPiI2CSetup(int devId); El parámetro devId es la dirección del dispositivo I2C, que se puede encontrar a través del comando i2cdetect (ver Apéndice) y el devId del LCD1602 I2C generalmente es 0x27. .. code-block:: c void write(int x, int y, char data[]){} En esta función, ``data[]`` es el carácter que se imprimirá en el LCD, y los parámetros x e y determinan la posición de impresión (la línea y+1, columna x+1 es la posición inicial del carácter a imprimir). Imagen del Fenómeno -------------------------- .. image:: ../img/image97.jpeg