.. note::
Ciao, benvenuto nella Community di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
**Perché unirti a noi?**
- **Supporto esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra comunità e del nostro team.
- **Impara e condividi**: Scambia consigli 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 omaggi**: Partecipa a omaggi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso!
.. _1.1.7_c_pi5:
1.1.7 I2C LCD1602
========================
Introduzione
-------------------
LCD1602 è un display a cristalli liquidi di tipo carattere, in grado di visualizzare 32 caratteri (16*2) 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 IN QUESTO KIT
- LINK
* - Raphael Kit
- 337
- |link_Raphael_kit|
Puoi anche acquistarli separatamente dai link sottostanti.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUZIONE 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 di Collegamento
----------------------------
============ ========
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.
.. 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 visualizzato su LCD il messaggio ``Greetings!, From SunFounder``.
.. note::
* Se appare un errore ``wiringPi.h: No such file or directory``, consulta :ref:`install_wiringpi_pi5`.
* Se ricevi l'errore ``Unable to open I2C device: No such file or directory``, devi fare riferimento a :ref:`i2c_config` per abilitare I2C e controllare che i collegamenti siano corretti.
* Se il codice e i collegamenti sono corretti, ma l'LCD non visualizza ancora nulla, 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 del display I2C LCD1602. Ci permettono di utilizzare facilmente l'I2C LCD1602.
Tra queste, ``init()`` è usata per l'inizializzazione, ``clear()`` per pulire lo schermo, ``write()`` per scrivere ciò che deve essere visualizzato, e le altre funzioni supportano quelle 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 con il comando i2cdetect (vedi Appendice), e solitamente l'indirizzo dell'I2C LCD1602 è 0x27.
.. code-block:: c
void write(int x, int y, char data[]){}
In questa funzione, ``data[]`` è il carattere da stampare sul display LCD, e i parametri x e y determinano la posizione (riga y+1, colonna x+1 rappresentano il punto di partenza del carattere da stampare).
Immagine del Fenomeno
--------------------------
.. image:: ../img/image97.jpeg