.. note:: Ciao, benvenuto nella community di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci la tua esperienza con Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati. **Perché unirti a noi?** - **Supporto Esperto**: Risolvi i problemi post-vendita e le sfide tecniche con l'aiuto della nostra comunità e del nostro team. - **Impara e Condividi**: Scambia suggerimenti e tutorial per migliorare le tue competenze. - **Anteprime Esclusive**: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime. - **Sconti Speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti. - **Promozioni Festive e Giveaway**: Partecipa a concorsi e promozioni festive. 👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti subito! .. _1.1.7_c: 1.1.7 I2C LCD1602 ======================= Introduzione ------------------ L'LCD1602 è un display a cristalli liquidi di tipo carattere, in grado di visualizzare 32 (16*2) caratteri contemporaneamente. Componenti Necessari ------------------------------ In questo progetto, abbiamo bisogno dei seguenti componenti. .. image:: ../img/list_i2c_lcd.png È sicuramente conveniente acquistare un kit completo, ecco il link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nome - COMPONENTI NEL KIT - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Puoi anche acquistarli separatamente dai link seguenti. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUZIONE AI COMPONENTI - LINK PER L'ACQUISTO * - :ref:`cpn_gpio_extension_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_i2c_lcd` - |link_i2clcd1602_buy| Schema Elettrico --------------------- ============ ======== T-Board Name physical SDA1 Pin 3 SCL1 Pin 5 ============ ======== .. image:: ../img/schematic_i2c_lcd.png Procedure Sperimentali ----------------------------- **Passo 1:** Costruisci il circuito. .. image:: ../img/image96.png **Passo 2**: Configura I2C (vedi :ref:`i2c_config`. Se hai già configurato I2C, salta questo passaggio). **Passo 3:** Cambia directory. .. raw:: html .. code-block:: cd ~/raphael-kit/c/1.1.7/ **Passo 4:** Compila il codice. .. raw:: html .. code-block:: gcc 1.1.7_Lcd1602.c -lwiringPi **Passo 5:** Esegui. .. raw:: html .. code-block:: sudo ./a.out Dopo l'esecuzione del codice, vedrai ``Greetings!, From SunFounder`` visualizzato sull'LCD. .. note:: * Se viene visualizzato l'errore ``wiringPi.h: No such file or directory``, fai riferimento a :ref:`install_wiringpi`. * Se ricevi l'errore ``Unable to open I2C device: No such file or directory``, consulta :ref:`i2c_config` per abilitare I2C e verificare che i collegamenti siano corretti. * Se il codice e i collegamenti sono corretti ma l'LCD non mostra contenuti, puoi regolare il potenziometro sul retro per aumentare il contrasto. **Codice** * `1.1.7_Lcd1602.c `_ **Spiegazione del Codice** .. code-block:: 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[]){……} Queste funzioni sono utilizzate per controllare il codice open source I2C LCD1602. Ci permettono di utilizzare facilmente I2C LCD1602. Tra queste funzioni, ``init()`` viene utilizzato per l'inizializzazione, ``clear()`` per cancellare lo schermo, ``write()`` per scrivere ciò che viene visualizzato, e altre funzioni supportano queste funzioni principali. .. code-block:: c fd = wiringPiI2CSetup(LCDAddr); Questa funzione inizializza il sistema I2C con il dispositivo specificato. Il prototipo della funzione è: .. code-block:: c int wiringPiI2CSetup(int devId); Il parametro devId è l'indirizzo del dispositivo I2C, che può essere trovato tramite il comando i2cdetect (vedi Appendice) e l'indirizzo del dispositivo per I2C LCD1602 è generalmente 0x27. .. code-block:: c void write(int x, int y, char data[]){} In questa funzione, ``data[]`` rappresenta i caratteri da stampare sull'LCD, e i parametri x e y determinano la posizione di stampa (la riga y+1 e la colonna x+1 rappresentano la posizione iniziale del carattere da stampare). Immagine del Fenomeno -------------------------- .. image:: ../img/image97.jpeg