.. 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